cjson
.github
workflows CI.yml ci-fuzz.yml
CONTRIBUTING.md
fuzzing
inputs test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9
.gitignore CMakeLists.txt afl-prepare-linux.sh afl.c afl.sh cjson_read_fuzzer.c fuzz_main.c json.dict ossfuzz.sh
library_config cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmake
tests
inputs test1 test1.expected test10 test10.expected test11 test11.expected test2 test2.expected test3 test3.expected test4 test4.expected test5 test5.expected test6 test7 test7.expected test8 test8.expected test9 test9.expected
json-patch-tests .editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.json
unity
auto colour_prompt.rb colour_reporter.rb generate_config.yml generate_module.rb generate_test_runner.rb parse_output.rb stylize_as_junit.rb test_file_filter.rb type_sanitizer.rb unity_test_summary.py unity_test_summary.rb unity_to_junit.py
docs ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txt
examples
example_1
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_2
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_3
helper UnityHelper.c UnityHelper.h
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
rakefile.rb rakefile_helper.rb readme.txt target_gcc_32.yml
unity_config.h
extras
eclipse error_parsers.txt
fixture
src unity_fixture.c unity_fixture.h unity_fixture_internals.h unity_fixture_malloc_overrides.h
rakefile.rb rakefile_helper.rb readme.txt
release build.info version.info
src unity.c unity.h unity_internals.h
.gitattributes .gitignore .travis.yml README.md
CMakeLists.txt cjson_add.c common.h compare_tests.c json_patch_tests.c minify_tests.c misc_tests.c misc_utils_tests.c old_utils_tests.c parse_array.c parse_examples.c parse_hex4.c parse_number.c parse_object.c parse_string.c parse_value.c parse_with_opts.c print_array.c print_number.c print_object.c print_string.c print_value.c readme_examples.c unity_setup.c
.editorconfig .gitattributes .gitignore .travis.yml CHANGELOG.md CMakeLists.txt CONTRIBUTORS.md LICENSE Makefile README.md SECURITY.md appveyor.yml cJSON.c cJSON.h cJSON_Utils.c cJSON_Utils.h test.c valgrind.supp
curl
.circleci config.yml
.github
ISSUE_TEMPLATE bug_report.yml config.yml docs.yml
scripts cleancmd.pl cmp-config.pl cmp-pkg-config.sh codespell-ignore.words codespell.sh distfiles.sh pyspelling.words pyspelling.yaml randcurl.pl requirements-docs.txt requirements-proselint.txt requirements.txt shellcheck-ci.sh shellcheck.sh spellcheck.curl trimmarkdownheader.pl typos.sh typos.toml verify-examples.pl verify-synopsis.pl yamlcheck.sh yamlcheck.yaml
workflows appveyor-status.yml checkdocs.yml checksrc.yml checkurls.yml codeql.yml configure-vs-cmake.yml curl-for-win.yml distcheck.yml fuzz.yml http3-linux.yml label.yml linux-old.yml linux.yml macos.yml non-native.yml windows.yml
CODEOWNERS CONTRIBUTING.md FUNDING.yml dependabot.yml labeler.yml lock.yml stale.yml
CMake CurlSymbolHiding.cmake CurlTests.c FindBrotli.cmake FindCares.cmake FindGSS.cmake FindGnuTLS.cmake FindLDAP.cmake FindLibbacktrace.cmake FindLibgsasl.cmake FindLibidn2.cmake FindLibpsl.cmake FindLibssh.cmake FindLibssh2.cmake FindLibuv.cmake FindMbedTLS.cmake FindNGHTTP2.cmake FindNGHTTP3.cmake FindNGTCP2.cmake FindNettle.cmake FindQuiche.cmake FindRustls.cmake FindWolfSSL.cmake FindZstd.cmake Macros.cmake OtherTests.cmake PickyWarnings.cmake Utilities.cmake cmake_uninstall.in.cmake curl-config.in.cmake unix-cache.cmake win32-cache.cmake
LICENSES BSD-4-Clause-UC.txt ISC.txt curl.txt
docs
cmdline-opts .gitignore CMakeLists.txt MANPAGE.md Makefile.am Makefile.inc _AUTHORS.md _BUGS.md _DESCRIPTION.md _ENVIRONMENT.md _EXITCODES.md _FILES.md _GLOBBING.md _NAME.md _OPTIONS.md _OUTPUT.md _PROGRESS.md _PROTOCOLS.md _PROXYPREFIX.md _SEEALSO.md _SYNOPSIS.md _URL.md _VARIABLES.md _VERSION.md _WWW.md abstract-unix-socket.md alt-svc.md anyauth.md append.md aws-sigv4.md basic.md ca-native.md cacert.md capath.md cert-status.md cert-type.md cert.md ciphers.md compressed-ssh.md compressed.md config.md connect-timeout.md connect-to.md continue-at.md cookie-jar.md cookie.md create-dirs.md create-file-mode.md crlf.md crlfile.md curves.md data-ascii.md data-binary.md data-raw.md data-urlencode.md data.md delegation.md digest.md disable-eprt.md disable-epsv.md disable.md disallow-username-in-url.md dns-interface.md dns-ipv4-addr.md dns-ipv6-addr.md dns-servers.md doh-cert-status.md doh-insecure.md doh-url.md dump-ca-embed.md dump-header.md ech.md egd-file.md engine.md etag-compare.md etag-save.md expect100-timeout.md fail-early.md fail-with-body.md fail.md false-start.md follow.md form-escape.md form-string.md form.md ftp-account.md ftp-alternative-to-user.md ftp-create-dirs.md ftp-method.md ftp-pasv.md ftp-port.md ftp-pret.md ftp-skip-pasv-ip.md ftp-ssl-ccc-mode.md ftp-ssl-ccc.md ftp-ssl-control.md get.md globoff.md happy-eyeballs-timeout-ms.md haproxy-clientip.md haproxy-protocol.md head.md header.md help.md hostpubmd5.md hostpubsha256.md hsts.md http0.9.md http1.0.md http1.1.md http2-prior-knowledge.md http2.md http3-only.md http3.md ignore-content-length.md insecure.md interface.md ip-tos.md ipfs-gateway.md ipv4.md ipv6.md json.md junk-session-cookies.md keepalive-cnt.md keepalive-time.md key-type.md key.md knownhosts.md krb.md libcurl.md limit-rate.md list-only.md local-port.md location-trusted.md location.md login-options.md mail-auth.md mail-from.md mail-rcpt-allowfails.md mail-rcpt.md mainpage.idx manual.md max-filesize.md max-redirs.md max-time.md metalink.md mptcp.md negotiate.md netrc-file.md netrc-optional.md netrc.md next.md no-alpn.md no-buffer.md no-clobber.md no-keepalive.md no-npn.md no-progress-meter.md no-sessionid.md noproxy.md ntlm-wb.md ntlm.md oauth2-bearer.md out-null.md output-dir.md output.md parallel-immediate.md parallel-max-host.md parallel-max.md parallel.md pass.md path-as-is.md pinnedpubkey.md post301.md post302.md post303.md preproxy.md progress-bar.md proto-default.md proto-redir.md proto.md proxy-anyauth.md proxy-basic.md proxy-ca-native.md proxy-cacert.md proxy-capath.md proxy-cert-type.md proxy-cert.md proxy-ciphers.md proxy-crlfile.md proxy-digest.md proxy-header.md proxy-http2.md proxy-insecure.md proxy-key-type.md proxy-key.md proxy-negotiate.md proxy-ntlm.md proxy-pass.md proxy-pinnedpubkey.md proxy-service-name.md proxy-ssl-allow-beast.md proxy-ssl-auto-client-cert.md proxy-tls13-ciphers.md proxy-tlsauthtype.md proxy-tlspassword.md proxy-tlsuser.md proxy-tlsv1.md proxy-user.md proxy.md proxy1.0.md proxytunnel.md pubkey.md quote.md random-file.md range.md rate.md raw.md referer.md remote-header-name.md remote-name-all.md remote-name.md remote-time.md remove-on-error.md request-target.md request.md resolve.md retry-all-errors.md retry-connrefused.md retry-delay.md retry-max-time.md retry.md sasl-authzid.md sasl-ir.md service-name.md show-error.md show-headers.md sigalgs.md silent.md skip-existing.md socks4.md socks4a.md socks5-basic.md socks5-gssapi-nec.md socks5-gssapi-service.md socks5-gssapi.md socks5-hostname.md socks5.md speed-limit.md speed-time.md ssl-allow-beast.md ssl-auto-client-cert.md ssl-no-revoke.md ssl-reqd.md ssl-revoke-best-effort.md ssl-sessions.md ssl.md sslv2.md sslv3.md stderr.md styled-output.md suppress-connect-headers.md tcp-fastopen.md tcp-nodelay.md telnet-option.md tftp-blksize.md tftp-no-options.md time-cond.md tls-earlydata.md tls-max.md tls13-ciphers.md tlsauthtype.md tlspassword.md tlsuser.md tlsv1.0.md tlsv1.1.md tlsv1.2.md tlsv1.3.md tlsv1.md tr-encoding.md trace-ascii.md trace-config.md trace-ids.md trace-time.md trace.md unix-socket.md upload-file.md upload-flags.md url-query.md url.md use-ascii.md user-agent.md user.md variable.md verbose.md version.md vlan-priority.md write-out.md xattr.md
examples .checksrc .gitignore 10-at-a-time.c CMakeLists.txt Makefile.am Makefile.example Makefile.inc README.md adddocsref.pl address-scope.c altsvc.c anyauthput.c block_ip.c cacertinmem.c certinfo.c chkspeed.c connect-to.c cookie_interface.c crawler.c debug.c default-scheme.c ephiperfifo.c evhiperfifo.c externalsocket.c fileupload.c ftp-delete.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c getredirect.c getreferrer.c ghiper.c headerapi.c hiperfifo.c hsts-preload.c htmltidy.c htmltitle.cpp http-options.c http-post.c http2-download.c http2-pushinmemory.c http2-serverpush.c http2-upload.c http3-present.c http3.c httpcustomheader.c httpput-postfields.c httpput.c https.c imap-append.c imap-authzid.c imap-copy.c imap-create.c imap-delete.c imap-examine.c imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c ipv6.c keepalive.c localport.c log_failed_transfers.c maxconnects.c multi-app.c multi-debugcallback.c multi-double.c multi-event.c multi-formadd.c multi-legacy.c multi-post.c multi-single.c multi-uv.c netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c postinmemory.c postit2-formadd.c postit2.c progressfunc.c protofeats.c range.c resolve.c rtsp-options.c sendrecv.c sepheaders.c sessioninfo.c sftpget.c sftpuploadresume.c shared-connection-cache.c simple.c simplepost.c simplessl.c smooth-gtk-thread.c smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c synctime.c threaded.c unixsocket.c url2file.c urlapi.c usercertinmem.c version-check.pl websocket-cb.c websocket-updown.c websocket.c xmlstream.c
internals BUFQ.md BUFREF.md CHECKSRC.md CLIENT-READERS.md CLIENT-WRITERS.md CODE_STYLE.md CONNECTION-FILTERS.md CREDENTIALS.md CURLX.md DYNBUF.md HASH.md LLIST.md MID.md MQTT.md MULTI-EV.md NEW-PROTOCOL.md PEERS.md PORTING.md RATELIMITS.md README.md SCORECARD.md SPLAY.md STRPARSE.md THRDPOOL-AND-QUEUE.md TIME-KEEPING.md TLS-SESSIONS.md UINT_SETS.md WEBSOCKET.md
libcurl
opts CMakeLists.txt CURLINFO_ACTIVESOCKET.md CURLINFO_APPCONNECT_TIME.md CURLINFO_APPCONNECT_TIME_T.md CURLINFO_CAINFO.md CURLINFO_CAPATH.md CURLINFO_CERTINFO.md CURLINFO_CONDITION_UNMET.md CURLINFO_CONNECT_TIME.md CURLINFO_CONNECT_TIME_T.md CURLINFO_CONN_ID.md CURLINFO_CONTENT_LENGTH_DOWNLOAD.md CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md CURLINFO_CONTENT_LENGTH_UPLOAD.md CURLINFO_CONTENT_LENGTH_UPLOAD_T.md CURLINFO_CONTENT_TYPE.md CURLINFO_COOKIELIST.md CURLINFO_EARLYDATA_SENT_T.md CURLINFO_EFFECTIVE_METHOD.md CURLINFO_EFFECTIVE_URL.md CURLINFO_FILETIME.md CURLINFO_FILETIME_T.md CURLINFO_FTP_ENTRY_PATH.md CURLINFO_HEADER_SIZE.md CURLINFO_HTTPAUTH_AVAIL.md CURLINFO_HTTPAUTH_USED.md CURLINFO_HTTP_CONNECTCODE.md CURLINFO_HTTP_VERSION.md CURLINFO_LASTSOCKET.md CURLINFO_LOCAL_IP.md CURLINFO_LOCAL_PORT.md CURLINFO_NAMELOOKUP_TIME.md CURLINFO_NAMELOOKUP_TIME_T.md CURLINFO_NUM_CONNECTS.md CURLINFO_OS_ERRNO.md CURLINFO_POSTTRANSFER_TIME_T.md CURLINFO_PRETRANSFER_TIME.md CURLINFO_PRETRANSFER_TIME_T.md CURLINFO_PRIMARY_IP.md CURLINFO_PRIMARY_PORT.md CURLINFO_PRIVATE.md CURLINFO_PROTOCOL.md CURLINFO_PROXYAUTH_AVAIL.md CURLINFO_PROXYAUTH_USED.md CURLINFO_PROXY_ERROR.md CURLINFO_PROXY_SSL_VERIFYRESULT.md CURLINFO_QUEUE_TIME_T.md CURLINFO_REDIRECT_COUNT.md CURLINFO_REDIRECT_TIME.md CURLINFO_REDIRECT_TIME_T.md CURLINFO_REDIRECT_URL.md CURLINFO_REFERER.md CURLINFO_REQUEST_SIZE.md CURLINFO_RESPONSE_CODE.md CURLINFO_RETRY_AFTER.md CURLINFO_RTSP_CLIENT_CSEQ.md CURLINFO_RTSP_CSEQ_RECV.md CURLINFO_RTSP_SERVER_CSEQ.md CURLINFO_RTSP_SESSION_ID.md CURLINFO_SCHEME.md CURLINFO_SIZE_DELIVERED.md CURLINFO_SIZE_DOWNLOAD.md CURLINFO_SIZE_DOWNLOAD_T.md CURLINFO_SIZE_UPLOAD.md CURLINFO_SIZE_UPLOAD_T.md CURLINFO_SPEED_DOWNLOAD.md CURLINFO_SPEED_DOWNLOAD_T.md CURLINFO_SPEED_UPLOAD.md CURLINFO_SPEED_UPLOAD_T.md CURLINFO_SSL_ENGINES.md CURLINFO_SSL_VERIFYRESULT.md CURLINFO_STARTTRANSFER_TIME.md CURLINFO_STARTTRANSFER_TIME_T.md CURLINFO_TLS_SESSION.md CURLINFO_TLS_SSL_PTR.md CURLINFO_TOTAL_TIME.md CURLINFO_TOTAL_TIME_T.md CURLINFO_USED_PROXY.md CURLINFO_XFER_ID.md CURLMINFO_XFERS_ADDED.md CURLMINFO_XFERS_CURRENT.md CURLMINFO_XFERS_DONE.md CURLMINFO_XFERS_PENDING.md CURLMINFO_XFERS_RUNNING.md CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md CURLMOPT_MAXCONNECTS.md CURLMOPT_MAX_CONCURRENT_STREAMS.md CURLMOPT_MAX_HOST_CONNECTIONS.md CURLMOPT_MAX_PIPELINE_LENGTH.md CURLMOPT_MAX_TOTAL_CONNECTIONS.md CURLMOPT_NETWORK_CHANGED.md CURLMOPT_NOTIFYDATA.md CURLMOPT_NOTIFYFUNCTION.md CURLMOPT_PIPELINING.md CURLMOPT_PIPELINING_SERVER_BL.md CURLMOPT_PIPELINING_SITE_BL.md CURLMOPT_PUSHDATA.md CURLMOPT_PUSHFUNCTION.md CURLMOPT_QUICK_EXIT.md CURLMOPT_RESOLVE_THREADS_MAX.md CURLMOPT_SOCKETDATA.md CURLMOPT_SOCKETFUNCTION.md CURLMOPT_TIMERDATA.md CURLMOPT_TIMERFUNCTION.md CURLOPT_ABSTRACT_UNIX_SOCKET.md CURLOPT_ACCEPTTIMEOUT_MS.md CURLOPT_ACCEPT_ENCODING.md CURLOPT_ADDRESS_SCOPE.md CURLOPT_ALTSVC.md CURLOPT_ALTSVC_CTRL.md CURLOPT_APPEND.md CURLOPT_AUTOREFERER.md CURLOPT_AWS_SIGV4.md CURLOPT_BUFFERSIZE.md CURLOPT_CAINFO.md CURLOPT_CAINFO_BLOB.md CURLOPT_CAPATH.md CURLOPT_CA_CACHE_TIMEOUT.md CURLOPT_CERTINFO.md CURLOPT_CHUNK_BGN_FUNCTION.md CURLOPT_CHUNK_DATA.md CURLOPT_CHUNK_END_FUNCTION.md CURLOPT_CLOSESOCKETDATA.md CURLOPT_CLOSESOCKETFUNCTION.md CURLOPT_CONNECTTIMEOUT.md CURLOPT_CONNECTTIMEOUT_MS.md CURLOPT_CONNECT_ONLY.md CURLOPT_CONNECT_TO.md CURLOPT_CONV_FROM_NETWORK_FUNCTION.md CURLOPT_CONV_FROM_UTF8_FUNCTION.md CURLOPT_CONV_TO_NETWORK_FUNCTION.md CURLOPT_COOKIE.md CURLOPT_COOKIEFILE.md CURLOPT_COOKIEJAR.md CURLOPT_COOKIELIST.md CURLOPT_COOKIESESSION.md CURLOPT_COPYPOSTFIELDS.md CURLOPT_CRLF.md CURLOPT_CRLFILE.md CURLOPT_CURLU.md CURLOPT_CUSTOMREQUEST.md CURLOPT_DEBUGDATA.md CURLOPT_DEBUGFUNCTION.md CURLOPT_DEFAULT_PROTOCOL.md CURLOPT_DIRLISTONLY.md CURLOPT_DISALLOW_USERNAME_IN_URL.md CURLOPT_DNS_CACHE_TIMEOUT.md CURLOPT_DNS_INTERFACE.md CURLOPT_DNS_LOCAL_IP4.md CURLOPT_DNS_LOCAL_IP6.md CURLOPT_DNS_SERVERS.md CURLOPT_DNS_SHUFFLE_ADDRESSES.md CURLOPT_DNS_USE_GLOBAL_CACHE.md CURLOPT_DOH_SSL_VERIFYHOST.md CURLOPT_DOH_SSL_VERIFYPEER.md CURLOPT_DOH_SSL_VERIFYSTATUS.md CURLOPT_DOH_URL.md CURLOPT_ECH.md CURLOPT_EGDSOCKET.md CURLOPT_ERRORBUFFER.md CURLOPT_EXPECT_100_TIMEOUT_MS.md CURLOPT_FAILONERROR.md CURLOPT_FILETIME.md CURLOPT_FNMATCH_DATA.md CURLOPT_FNMATCH_FUNCTION.md CURLOPT_FOLLOWLOCATION.md CURLOPT_FORBID_REUSE.md CURLOPT_FRESH_CONNECT.md CURLOPT_FTPPORT.md CURLOPT_FTPSSLAUTH.md CURLOPT_FTP_ACCOUNT.md CURLOPT_FTP_ALTERNATIVE_TO_USER.md CURLOPT_FTP_CREATE_MISSING_DIRS.md CURLOPT_FTP_FILEMETHOD.md CURLOPT_FTP_SKIP_PASV_IP.md CURLOPT_FTP_SSL_CCC.md CURLOPT_FTP_USE_EPRT.md CURLOPT_FTP_USE_EPSV.md CURLOPT_FTP_USE_PRET.md CURLOPT_GSSAPI_DELEGATION.md CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md CURLOPT_HAPROXYPROTOCOL.md CURLOPT_HAPROXY_CLIENT_IP.md CURLOPT_HEADER.md CURLOPT_HEADERDATA.md CURLOPT_HEADERFUNCTION.md CURLOPT_HEADEROPT.md CURLOPT_HSTS.md CURLOPT_HSTSREADDATA.md CURLOPT_HSTSREADFUNCTION.md CURLOPT_HSTSWRITEDATA.md CURLOPT_HSTSWRITEFUNCTION.md CURLOPT_HSTS_CTRL.md CURLOPT_HTTP09_ALLOWED.md CURLOPT_HTTP200ALIASES.md CURLOPT_HTTPAUTH.md CURLOPT_HTTPGET.md CURLOPT_HTTPHEADER.md CURLOPT_HTTPPOST.md CURLOPT_HTTPPROXYTUNNEL.md CURLOPT_HTTP_CONTENT_DECODING.md CURLOPT_HTTP_TRANSFER_DECODING.md CURLOPT_HTTP_VERSION.md CURLOPT_IGNORE_CONTENT_LENGTH.md CURLOPT_INFILESIZE.md CURLOPT_INFILESIZE_LARGE.md CURLOPT_INTERFACE.md CURLOPT_INTERLEAVEDATA.md CURLOPT_INTERLEAVEFUNCTION.md CURLOPT_IOCTLDATA.md CURLOPT_IOCTLFUNCTION.md CURLOPT_IPRESOLVE.md CURLOPT_ISSUERCERT.md CURLOPT_ISSUERCERT_BLOB.md CURLOPT_KEEP_SENDING_ON_ERROR.md CURLOPT_KEYPASSWD.md CURLOPT_KRBLEVEL.md CURLOPT_LOCALPORT.md CURLOPT_LOCALPORTRANGE.md CURLOPT_LOGIN_OPTIONS.md CURLOPT_LOW_SPEED_LIMIT.md CURLOPT_LOW_SPEED_TIME.md CURLOPT_MAIL_AUTH.md CURLOPT_MAIL_FROM.md CURLOPT_MAIL_RCPT.md CURLOPT_MAIL_RCPT_ALLOWFAILS.md CURLOPT_MAXAGE_CONN.md CURLOPT_MAXCONNECTS.md CURLOPT_MAXFILESIZE.md CURLOPT_MAXFILESIZE_LARGE.md CURLOPT_MAXLIFETIME_CONN.md CURLOPT_MAXREDIRS.md CURLOPT_MAX_RECV_SPEED_LARGE.md CURLOPT_MAX_SEND_SPEED_LARGE.md CURLOPT_MIMEPOST.md CURLOPT_MIME_OPTIONS.md CURLOPT_NETRC.md CURLOPT_NETRC_FILE.md CURLOPT_NEW_DIRECTORY_PERMS.md CURLOPT_NEW_FILE_PERMS.md CURLOPT_NOBODY.md CURLOPT_NOPROGRESS.md CURLOPT_NOPROXY.md CURLOPT_NOSIGNAL.md CURLOPT_OPENSOCKETDATA.md CURLOPT_OPENSOCKETFUNCTION.md CURLOPT_PASSWORD.md CURLOPT_PATH_AS_IS.md CURLOPT_PINNEDPUBLICKEY.md CURLOPT_PIPEWAIT.md CURLOPT_PORT.md CURLOPT_POST.md CURLOPT_POSTFIELDS.md CURLOPT_POSTFIELDSIZE.md CURLOPT_POSTFIELDSIZE_LARGE.md CURLOPT_POSTQUOTE.md CURLOPT_POSTREDIR.md CURLOPT_PREQUOTE.md CURLOPT_PREREQDATA.md CURLOPT_PREREQFUNCTION.md CURLOPT_PRE_PROXY.md CURLOPT_PRIVATE.md CURLOPT_PROGRESSDATA.md CURLOPT_PROGRESSFUNCTION.md CURLOPT_PROTOCOLS.md CURLOPT_PROTOCOLS_STR.md CURLOPT_PROXY.md CURLOPT_PROXYAUTH.md CURLOPT_PROXYHEADER.md CURLOPT_PROXYPASSWORD.md CURLOPT_PROXYPORT.md CURLOPT_PROXYTYPE.md CURLOPT_PROXYUSERNAME.md CURLOPT_PROXYUSERPWD.md CURLOPT_PROXY_CAINFO.md CURLOPT_PROXY_CAINFO_BLOB.md CURLOPT_PROXY_CAPATH.md CURLOPT_PROXY_CRLFILE.md CURLOPT_PROXY_ISSUERCERT.md CURLOPT_PROXY_ISSUERCERT_BLOB.md CURLOPT_PROXY_KEYPASSWD.md CURLOPT_PROXY_PINNEDPUBLICKEY.md CURLOPT_PROXY_SERVICE_NAME.md CURLOPT_PROXY_SSLCERT.md CURLOPT_PROXY_SSLCERTTYPE.md CURLOPT_PROXY_SSLCERT_BLOB.md CURLOPT_PROXY_SSLKEY.md CURLOPT_PROXY_SSLKEYTYPE.md CURLOPT_PROXY_SSLKEY_BLOB.md CURLOPT_PROXY_SSLVERSION.md CURLOPT_PROXY_SSL_CIPHER_LIST.md CURLOPT_PROXY_SSL_OPTIONS.md CURLOPT_PROXY_SSL_VERIFYHOST.md CURLOPT_PROXY_SSL_VERIFYPEER.md CURLOPT_PROXY_TLS13_CIPHERS.md CURLOPT_PROXY_TLSAUTH_PASSWORD.md CURLOPT_PROXY_TLSAUTH_TYPE.md CURLOPT_PROXY_TLSAUTH_USERNAME.md CURLOPT_PROXY_TRANSFER_MODE.md CURLOPT_PUT.md CURLOPT_QUICK_EXIT.md CURLOPT_QUOTE.md CURLOPT_RANDOM_FILE.md CURLOPT_RANGE.md CURLOPT_READDATA.md CURLOPT_READFUNCTION.md CURLOPT_REDIR_PROTOCOLS.md CURLOPT_REDIR_PROTOCOLS_STR.md CURLOPT_REFERER.md CURLOPT_REQUEST_TARGET.md CURLOPT_RESOLVE.md CURLOPT_RESOLVER_START_DATA.md CURLOPT_RESOLVER_START_FUNCTION.md CURLOPT_RESUME_FROM.md CURLOPT_RESUME_FROM_LARGE.md CURLOPT_RTSP_CLIENT_CSEQ.md CURLOPT_RTSP_REQUEST.md CURLOPT_RTSP_SERVER_CSEQ.md CURLOPT_RTSP_SESSION_ID.md CURLOPT_RTSP_STREAM_URI.md CURLOPT_RTSP_TRANSPORT.md CURLOPT_SASL_AUTHZID.md CURLOPT_SASL_IR.md CURLOPT_SEEKDATA.md CURLOPT_SEEKFUNCTION.md CURLOPT_SERVER_RESPONSE_TIMEOUT.md CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md CURLOPT_SERVICE_NAME.md CURLOPT_SHARE.md CURLOPT_SOCKOPTDATA.md CURLOPT_SOCKOPTFUNCTION.md CURLOPT_SOCKS5_AUTH.md CURLOPT_SOCKS5_GSSAPI_NEC.md CURLOPT_SOCKS5_GSSAPI_SERVICE.md CURLOPT_SSH_AUTH_TYPES.md CURLOPT_SSH_COMPRESSION.md CURLOPT_SSH_HOSTKEYDATA.md CURLOPT_SSH_HOSTKEYFUNCTION.md CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md CURLOPT_SSH_KEYDATA.md CURLOPT_SSH_KEYFUNCTION.md CURLOPT_SSH_KNOWNHOSTS.md CURLOPT_SSH_PRIVATE_KEYFILE.md CURLOPT_SSH_PUBLIC_KEYFILE.md CURLOPT_SSLCERT.md CURLOPT_SSLCERTTYPE.md CURLOPT_SSLCERT_BLOB.md CURLOPT_SSLENGINE.md CURLOPT_SSLENGINE_DEFAULT.md CURLOPT_SSLKEY.md CURLOPT_SSLKEYTYPE.md CURLOPT_SSLKEY_BLOB.md CURLOPT_SSLVERSION.md CURLOPT_SSL_CIPHER_LIST.md CURLOPT_SSL_CTX_DATA.md CURLOPT_SSL_CTX_FUNCTION.md CURLOPT_SSL_EC_CURVES.md CURLOPT_SSL_ENABLE_ALPN.md CURLOPT_SSL_ENABLE_NPN.md CURLOPT_SSL_FALSESTART.md CURLOPT_SSL_OPTIONS.md CURLOPT_SSL_SESSIONID_CACHE.md CURLOPT_SSL_SIGNATURE_ALGORITHMS.md CURLOPT_SSL_VERIFYHOST.md CURLOPT_SSL_VERIFYPEER.md CURLOPT_SSL_VERIFYSTATUS.md CURLOPT_STDERR.md CURLOPT_STREAM_DEPENDS.md CURLOPT_STREAM_DEPENDS_E.md CURLOPT_STREAM_WEIGHT.md CURLOPT_SUPPRESS_CONNECT_HEADERS.md CURLOPT_TCP_FASTOPEN.md CURLOPT_TCP_KEEPALIVE.md CURLOPT_TCP_KEEPCNT.md CURLOPT_TCP_KEEPIDLE.md CURLOPT_TCP_KEEPINTVL.md CURLOPT_TCP_NODELAY.md CURLOPT_TELNETOPTIONS.md CURLOPT_TFTP_BLKSIZE.md CURLOPT_TFTP_NO_OPTIONS.md CURLOPT_TIMECONDITION.md CURLOPT_TIMEOUT.md CURLOPT_TIMEOUT_MS.md CURLOPT_TIMEVALUE.md CURLOPT_TIMEVALUE_LARGE.md CURLOPT_TLS13_CIPHERS.md CURLOPT_TLSAUTH_PASSWORD.md CURLOPT_TLSAUTH_TYPE.md CURLOPT_TLSAUTH_USERNAME.md CURLOPT_TRAILERDATA.md CURLOPT_TRAILERFUNCTION.md CURLOPT_TRANSFERTEXT.md CURLOPT_TRANSFER_ENCODING.md CURLOPT_UNIX_SOCKET_PATH.md CURLOPT_UNRESTRICTED_AUTH.md CURLOPT_UPKEEP_INTERVAL_MS.md CURLOPT_UPLOAD.md CURLOPT_UPLOAD_BUFFERSIZE.md CURLOPT_UPLOAD_FLAGS.md CURLOPT_URL.md CURLOPT_USERAGENT.md CURLOPT_USERNAME.md CURLOPT_USERPWD.md CURLOPT_USE_SSL.md CURLOPT_VERBOSE.md CURLOPT_WILDCARDMATCH.md CURLOPT_WRITEDATA.md CURLOPT_WRITEFUNCTION.md CURLOPT_WS_OPTIONS.md CURLOPT_XFERINFODATA.md CURLOPT_XFERINFOFUNCTION.md CURLOPT_XOAUTH2_BEARER.md CURLSHOPT_LOCKFUNC.md CURLSHOPT_SHARE.md CURLSHOPT_UNLOCKFUNC.md CURLSHOPT_UNSHARE.md CURLSHOPT_USERDATA.md Makefile.am Makefile.inc
.gitignore ABI.md CMakeLists.txt Makefile.am Makefile.inc curl_easy_cleanup.md curl_easy_duphandle.md curl_easy_escape.md curl_easy_getinfo.md curl_easy_header.md curl_easy_init.md curl_easy_nextheader.md curl_easy_option_by_id.md curl_easy_option_by_name.md curl_easy_option_next.md curl_easy_pause.md curl_easy_perform.md curl_easy_recv.md curl_easy_reset.md curl_easy_send.md curl_easy_setopt.md curl_easy_ssls_export.md curl_easy_ssls_import.md curl_easy_strerror.md curl_easy_unescape.md curl_easy_upkeep.md curl_escape.md curl_formadd.md curl_formfree.md curl_formget.md curl_free.md curl_getdate.md curl_getenv.md curl_global_cleanup.md curl_global_init.md curl_global_init_mem.md curl_global_sslset.md curl_global_trace.md curl_mime_addpart.md curl_mime_data.md curl_mime_data_cb.md curl_mime_encoder.md curl_mime_filedata.md curl_mime_filename.md curl_mime_free.md curl_mime_headers.md curl_mime_init.md curl_mime_name.md curl_mime_subparts.md curl_mime_type.md curl_mprintf.md curl_multi_add_handle.md curl_multi_assign.md curl_multi_cleanup.md curl_multi_fdset.md curl_multi_get_handles.md curl_multi_get_offt.md curl_multi_info_read.md curl_multi_init.md curl_multi_notify_disable.md curl_multi_notify_enable.md curl_multi_perform.md curl_multi_poll.md curl_multi_remove_handle.md curl_multi_setopt.md curl_multi_socket.md curl_multi_socket_action.md curl_multi_socket_all.md curl_multi_strerror.md curl_multi_timeout.md curl_multi_wait.md curl_multi_waitfds.md curl_multi_wakeup.md curl_pushheader_byname.md curl_pushheader_bynum.md curl_share_cleanup.md curl_share_init.md curl_share_setopt.md curl_share_strerror.md curl_slist_append.md curl_slist_free_all.md curl_strequal.md curl_strnequal.md curl_unescape.md curl_url.md curl_url_cleanup.md curl_url_dup.md curl_url_get.md curl_url_set.md curl_url_strerror.md curl_version.md curl_version_info.md curl_ws_meta.md curl_ws_recv.md curl_ws_send.md curl_ws_start_frame.md libcurl-easy.md libcurl-env-dbg.md libcurl-env.md libcurl-errors.md libcurl-multi.md libcurl-security.md libcurl-share.md libcurl-thread.md libcurl-tutorial.md libcurl-url.md libcurl-ws.md libcurl.m4 libcurl.md mksymbolsmanpage.pl symbols-in-versions symbols.pl
tests CI.md FILEFORMAT.md HTTP.md TEST-SUITE.md
.gitignore ALTSVC.md BINDINGS.md BUG-BOUNTY.md BUGS.md CIPHERS-TLS12.md CIPHERS.md CMakeLists.txt CODE_OF_CONDUCT.md CODE_REVIEW.md CONTRIBUTE.md CURL-DISABLE.md CURLDOWN.md DEPRECATE.md DISTROS.md EARLY-RELEASE.md ECH.md EXPERIMENTAL.md FAQ.md FEATURES.md GOVERNANCE.md HELP-US.md HISTORY.md HSTS.md HTTP-COOKIES.md HTTP3.md HTTPSRR.md INFRASTRUCTURE.md INSTALL-CMAKE.md INSTALL.md INTERNALS.md IPFS.md KNOWN_BUGS.md KNOWN_RISKS.md MAIL-ETIQUETTE.md MANUAL.md Makefile.am README.md RELEASE-PROCEDURE.md ROADMAP.md RUSTLS.md SECURITY-ADVISORY.md SPONSORS.md SSL-PROBLEMS.md SSLCERTS.md THANKS THANKS-filter TODO.md TheArtOfHttpScripting.md URL-SYNTAX.md VERIFY.md VERSIONS.md VULN-DISCLOSURE-POLICY.md curl-config.md mk-ca-bundle.md options-in-versions runtests.md testcurl.md wcurl.md
include
curl Makefile.am curl.h curlver.h easy.h header.h mprintf.h multi.h options.h stdcheaders.h system.h typecheck-gcc.h urlapi.h websockets.h
Makefile.am README.md
lib
curlx base64.c base64.h basename.c basename.h dynbuf.c dynbuf.h fopen.c fopen.h inet_ntop.c inet_ntop.h inet_pton.c inet_pton.h multibyte.c multibyte.h nonblock.c nonblock.h snprintf.c snprintf.h strcopy.c strcopy.h strdup.c strdup.h strerr.c strerr.h strparse.c strparse.h timediff.c timediff.h timeval.c timeval.h version_win32.c version_win32.h wait.c wait.h warnless.c warnless.h winapi.c winapi.h
vauth cleartext.c cram.c digest.c digest.h digest_sspi.c gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c spnego_sspi.c vauth.c vauth.h
vquic curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.h
vssh libssh.c libssh2.c ssh.h vssh.c vssh.h
vtls apple.c apple.h cipher_suite.c cipher_suite.h gtls.c gtls.h hostcheck.c hostcheck.h keylog.c keylog.h mbedtls.c mbedtls.h openssl.c openssl.h rustls.c rustls.h schannel.c schannel.h schannel_int.h schannel_verify.c vtls.c vtls.h vtls_int.h vtls_scache.c vtls_scache.h vtls_spack.c vtls_spack.h wolfssl.c wolfssl.h x509asn1.c x509asn1.h
.gitignore CMakeLists.txt Makefile.am Makefile.inc Makefile.soname altsvc.c altsvc.h amigaos.c amigaos.h arpa_telnet.h asyn-ares.c asyn-base.c asyn-thrdd.c asyn.h bufq.c bufq.h bufref.c bufref.h cf-dns.c cf-dns.h cf-h1-proxy.c cf-h1-proxy.h cf-h2-proxy.c cf-h2-proxy.h cf-haproxy.c cf-haproxy.h cf-https-connect.c cf-https-connect.h cf-ip-happy.c cf-ip-happy.h cf-socket.c cf-socket.h cfilters.c cfilters.h config-mac.h config-os400.h config-riscos.h config-win32.h conncache.c conncache.h connect.c connect.h content_encoding.c content_encoding.h cookie.c cookie.h creds.c creds.h cshutdn.c cshutdn.h curl_addrinfo.c curl_addrinfo.h curl_config-cmake.h.in curl_ctype.h curl_endian.c curl_endian.h curl_fnmatch.c curl_fnmatch.h curl_fopen.c curl_fopen.h curl_get_line.c curl_get_line.h curl_gethostname.c curl_gethostname.h curl_gssapi.c curl_gssapi.h curl_hmac.h curl_ldap.h curl_md4.h curl_md5.h curl_memrchr.c curl_memrchr.h curl_ntlm_core.c curl_ntlm_core.h curl_printf.h curl_range.c curl_range.h curl_sasl.c curl_sasl.h curl_setup.h curl_sha256.h curl_sha512_256.c curl_sha512_256.h curl_share.c curl_share.h curl_sspi.c curl_sspi.h curl_threads.c curl_threads.h curl_trc.c curl_trc.h cw-out.c cw-out.h cw-pause.c cw-pause.h dict.c dict.h dllmain.c dnscache.c dnscache.h doh.c doh.h dynhds.c dynhds.h easy.c easy_lock.h easygetopt.c easyif.h easyoptions.c easyoptions.h escape.c escape.h fake_addrinfo.c fake_addrinfo.h file.c file.h fileinfo.c fileinfo.h formdata.c formdata.h ftp-int.h ftp.c ftp.h ftplistparser.c ftplistparser.h functypes.h getenv.c getinfo.c getinfo.h gopher.c gopher.h hash.c hash.h headers.c headers.h hmac.c hostip.c hostip.h hostip4.c hostip6.c hsts.c hsts.h http.c http.h http1.c http1.h http2.c http2.h http_aws_sigv4.c http_aws_sigv4.h http_chunks.c http_chunks.h http_digest.c http_digest.h http_negotiate.c http_negotiate.h http_ntlm.c http_ntlm.h http_proxy.c http_proxy.h httpsrr.c httpsrr.h idn.c idn.h if2ip.c if2ip.h imap.c imap.h ldap.c libcurl.def libcurl.rc libcurl.vers.in llist.c llist.h macos.c macos.h md4.c md5.c memdebug.c mime.c mime.h mprintf.c mqtt.c mqtt.h multi.c multi_ev.c multi_ev.h multi_ntfy.c multi_ntfy.h multihandle.h multiif.h netrc.c netrc.h noproxy.c noproxy.h openldap.c optiontable.pl parsedate.c parsedate.h peer.c peer.h pingpong.c pingpong.h pop3.c pop3.h progress.c progress.h protocol.c protocol.h psl.c psl.h rand.c rand.h ratelimit.c ratelimit.h request.c request.h rtsp.c rtsp.h select.c select.h sendf.c sendf.h setopt.c setopt.h setup-os400.h setup-vms.h setup-win32.h sha256.c sigpipe.h slist.c slist.h smb.c smb.h smtp.c smtp.h sockaddr.h socketpair.c socketpair.h socks.c socks.h socks_gssapi.c socks_sspi.c splay.c splay.h strcase.c strcase.h strequal.c strerror.c strerror.h system_win32.c system_win32.h telnet.c telnet.h tftp.c tftp.h thrdpool.c thrdpool.h thrdqueue.c thrdqueue.h transfer.c transfer.h uint-bset.c uint-bset.h uint-hash.c uint-hash.h uint-spbset.c uint-spbset.h uint-table.c uint-table.h url.c url.h urlapi-int.h urlapi.c urldata.h version.c ws.c ws.h
m4 .gitignore curl-amissl.m4 curl-apple-sectrust.m4 curl-compilers.m4 curl-confopts.m4 curl-functions.m4 curl-gnutls.m4 curl-mbedtls.m4 curl-openssl.m4 curl-override.m4 curl-reentrant.m4 curl-rustls.m4 curl-schannel.m4 curl-sysconfig.m4 curl-wolfssl.m4 xc-am-iface.m4 xc-cc-check.m4 xc-lt-iface.m4 xc-val-flgs.m4 zz40-xc-ovr.m4 zz50-xc-ovr.m4
projects
OS400
rpg-examples HEADERAPI HTTPPOST INMEMORY SIMPLE1 SIMPLE2 SMTPSRCMBR
.checksrc README.OS400 ccsidcurl.c ccsidcurl.h config400.default curl.cmd curl.inc.in curlcl.c curlmain.c initscript.sh make-docs.sh make-include.sh make-lib.sh make-src.sh make-tests.sh makefile.sh os400sys.c os400sys.h
Windows
tmpl .gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filters
.gitignore README.md generate.bat
vms Makefile.am backup_gnv_curl_src.com build_curl-config_script.com build_gnv_curl.com build_gnv_curl_pcsi_desc.com build_gnv_curl_pcsi_text.com build_gnv_curl_release_notes.com build_libcurl_pc.com build_vms.com clean_gnv_curl.com compare_curl_source.com config_h.com curl_crtl_init.c curl_gnv_build_steps.txt curl_release_note_start.txt curl_startup.com curlmsg.h curlmsg.msg curlmsg.sdl curlmsg_vms.h generate_config_vms_h_curl.com generate_vax_transfer.com gnv_conftest.c_first gnv_curl_configure.sh gnv_libcurl_symbols.opt gnv_link_curl.com macro32_exactcase.patch make_gnv_curl_install.sh make_pcsi_curl_kit_name.com pcsi_gnv_curl_file_list.txt pcsi_product_gnv_curl.com readme report_openssl_version.c setup_gnv_curl_build.com stage_curl_install.com vms_eco_level.h
Makefile.am README.md
scripts .checksrc CMakeLists.txt Makefile.am badwords badwords-all badwords.txt cd2cd cd2nroff cdall checksrc-all.pl checksrc.pl cmakelint.sh completion.pl contributors.sh contrithanks.sh coverage.sh delta dmaketgz extract-unit-protos firefox-db2pem.sh installcheck.sh maketgz managen mdlinkcheck mk-ca-bundle.pl mk-unity.pl nroff2cd perlcheck.sh pythonlint.sh randdisable release-notes.pl release-tools.sh schemetable.c singleuse.pl spacecheck.pl top-complexity top-length verify-release wcurl
src
toolx tool_time.c tool_time.h
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc config2setopts.c config2setopts.h curl.rc curlinfo.c mk-file-embed.pl mkhelp.pl slist_wc.c slist_wc.h terminal.c terminal.h tool_cb_dbg.c tool_cb_dbg.h tool_cb_hdr.c tool_cb_hdr.h tool_cb_prg.c tool_cb_prg.h tool_cb_rea.c tool_cb_rea.h tool_cb_see.c tool_cb_see.h tool_cb_soc.c tool_cb_soc.h tool_cb_wrt.c tool_cb_wrt.h tool_cfgable.c tool_cfgable.h tool_dirhie.c tool_dirhie.h tool_doswin.c tool_doswin.h tool_easysrc.c tool_easysrc.h tool_filetime.c tool_filetime.h tool_findfile.c tool_findfile.h tool_formparse.c tool_formparse.h tool_getparam.c tool_getparam.h tool_getpass.c tool_getpass.h tool_help.c tool_help.h tool_helpers.c tool_helpers.h tool_hugehelp.h tool_ipfs.c tool_ipfs.h tool_libinfo.c tool_libinfo.h tool_listhelp.c tool_main.c tool_main.h tool_msgs.c tool_msgs.h tool_operate.c tool_operate.h tool_operhlp.c tool_operhlp.h tool_paramhlp.c tool_paramhlp.h tool_parsecfg.c tool_parsecfg.h tool_progress.c tool_progress.h tool_sdecls.h tool_setopt.c tool_setopt.h tool_setup.h tool_ssls.c tool_ssls.h tool_stderr.c tool_stderr.h tool_urlglob.c tool_urlglob.h tool_util.c tool_util.h tool_version.h tool_vms.c tool_vms.h tool_writeout.c tool_writeout.h tool_writeout_json.c tool_writeout_json.h tool_xattr.c tool_xattr.h var.c var.h
tests
certs .gitignore CMakeLists.txt Makefile.am Makefile.inc genserv.pl srp-verifier-conf srp-verifier-db test-ca.cnf test-ca.prm test-client-cert.prm test-client-eku-only.prm test-localhost-san-first.prm test-localhost-san-last.prm test-localhost.nn.prm test-localhost.prm test-localhost0h.prm
cmake CMakeLists.txt test.c test.cpp test.sh
data .gitignore DISABLED Makefile.am data-xml1 data1400.c data1401.c data1402.c data1403.c data1404.c data1405.c data1406.c data1407.c data1420.c data1461.txt data1463.txt data1465.c data1481.c data1705-1.md data1705-2.md data1705-3.md data1705-4.md data1705-stdout.1 data1706-1.md data1706-2.md data1706-3.md data1706-4.md data1706-stdout.txt data320.html test1 test10 test100 test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 test1008 test1009 test101 test1010 test1011 test1012 test1013 test1014 test1015 test1016 test1017 test1018 test1019 test102 test1020 test1021 test1022 test1023 test1024 test1025 test1026 test1027 test1028 test1029 test103 test1030 test1031 test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 test104 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 test1048 test1049 test105 test1050 test1051 test1052 test1053 test1054 test1055 test1056 test1057 test1058 test1059 test106 test1060 test1061 test1062 test1063 test1064 test1065 test1066 test1067 test1068 test1069 test107 test1070 test1071 test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 test108 test1080 test1081 test1082 test1083 test1084 test1085 test1086 test1087 test1088 test1089 test109 test1090 test1091 test1092 test1093 test1094 test1095 test1096 test1097 test1098 test1099 test11 test110 test1100 test1101 test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 test111 test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 test112 test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 test1128 test1129 test113 test1130 test1131 test1132 test1133 test1134 test1135 test1136 test1137 test1138 test1139 test114 test1140 test1141 test1142 test1143 test1144 test1145 test1146 test1147 test1148 test1149 test115 test1150 test1151 test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 test116 test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 test1168 test1169 test117 test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 test1178 test1179 test118 test1180 test1181 test1182 test1183 test1184 test1185 test1186 test1187 test1188 test1189 test119 test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 test1199 test12 test120 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 test1208 test1209 test121 test1210 test1211 test1212 test1213 test1214 test1215 test1216 test1217 test1218 test1219 test122 test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 test1228 test1229 test123 test1230 test1231 test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 test124 test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 test1248 test1249 test125 test1250 test1251 test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 test126 test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 test1268 test1269 test127 test1270 test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 test1279 test128 test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 test1288 test1289 test129 test1290 test1291 test1292 test1293 test1294 test1295 test1296 test1297 test1298 test1299 test13 test130 test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 test1308 test1309 test131 test1310 test1311 test1312 test1313 test1314 test1315 test1316 test1317 test1318 test1319 test132 test1320 test1321 test1322 test1323 test1324 test1325 test1326 test1327 test1328 test1329 test133 test1330 test1331 test1332 test1333 test1334 test1335 test1336 test1337 test1338 test1339 test134 test1340 test1341 test1342 test1343 test1344 test1345 test1346 test1347 test1348 test1349 test135 test1350 test1351 test1352 test1353 test1354 test1355 test1356 test1357 test1358 test1359 test136 test1360 test1361 test1362 test1363 test1364 test1365 test1366 test1367 test1368 test1369 test137 test1370 test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 test1379 test138 test1380 test1381 test1382 test1383 test1384 test1385 test1386 test1387 test1388 test1389 test139 test1390 test1391 test1392 test1393 test1394 test1395 test1396 test1397 test1398 test1399 test14 test140 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 test1408 test1409 test141 test1410 test1411 test1412 test1413 test1414 test1415 test1416 test1417 test1418 test1419 test142 test1420 test1421 test1422 test1423 test1424 test1425 test1426 test1427 test1428 test1429 test143 test1430 test1431 test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 test144 test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 test1448 test1449 test145 test1450 test1451 test1452 test1453 test1454 test1455 test1456 test1457 test1458 test1459 test146 test1460 test1461 test1462 test1463 test1464 test1465 test1466 test1467 test1468 test1469 test147 test1470 test1471 test1472 test1473 test1474 test1475 test1476 test1477 test1478 test1479 test148 test1480 test1481 test1482 test1483 test1484 test1485 test1486 test1487 test1488 test1489 test149 test1490 test1491 test1492 test1493 test1494 test1495 test1496 test1497 test1498 test1499 test15 test150 test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 test1508 test1509 test151 test1510 test1511 test1512 test1513 test1514 test1515 test1516 test1517 test1518 test1519 test152 test1520 test1521 test1522 test1523 test1524 test1525 test1526 test1527 test1528 test1529 test153 test1530 test1531 test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 test154 test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 test1548 test1549 test155 test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 test1558 test1559 test156 test1560 test1561 test1562 test1563 test1564 test1565 test1566 test1567 test1568 test1569 test157 test1570 test1571 test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 test158 test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 test1588 test1589 test159 test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 test1598 test1599 test16 test160 test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 test1608 test1609 test161 test1610 test1611 test1612 test1613 test1614 test1615 test1616 test1617 test1618 test1619 test162 test1620 test1621 test1622 test1623 test1624 test1625 test1626 test1627 test1628 test1629 test163 test1630 test1631 test1632 test1633 test1634 test1635 test1636 test1637 test1638 test1639 test164 test1640 test1641 test1642 test1643 test1644 test1645 test165 test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 test1658 test1659 test166 test1660 test1661 test1662 test1663 test1664 test1665 test1666 test1667 test1668 test1669 test167 test1670 test1671 test1672 test1673 test1674 test1675 test1676 test168 test1680 test1681 test1682 test1683 test1684 test1685 test169 test17 test170 test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 test1708 test1709 test171 test1710 test1711 test1712 test1713 test1714 test1715 test172 test1720 test1721 test173 test174 test175 test176 test177 test178 test179 test18 test180 test1800 test1801 test1802 test181 test182 test183 test184 test1847 test1848 test1849 test185 test1850 test1851 test186 test187 test188 test189 test19 test190 test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 test1908 test1909 test191 test1910 test1911 test1912 test1913 test1914 test1915 test1916 test1917 test1918 test1919 test192 test1920 test1921 test193 test1933 test1934 test1935 test1936 test1937 test1938 test1939 test194 test1940 test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 test195 test1955 test1956 test1957 test1958 test1959 test196 test1960 test1964 test1965 test1966 test197 test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 test1978 test1979 test198 test1980 test1981 test1982 test1983 test1984 test199 test2 test20 test200 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 test2008 test2009 test201 test2010 test2011 test2012 test2013 test2014 test202 test2023 test2024 test2025 test2026 test2027 test2028 test2029 test203 test2030 test2031 test2032 test2033 test2034 test2035 test2037 test2038 test2039 test204 test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 test2048 test2049 test205 test2050 test2051 test2052 test2053 test2054 test2055 test2056 test2057 test2058 test2059 test206 test2060 test2061 test2062 test2063 test2064 test2065 test2066 test2067 test2068 test2069 test207 test2070 test2071 test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 test208 test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 test2088 test2089 test209 test2090 test2091 test2092 test21 test210 test2100 test2101 test2102 test2103 test2104 test211 test212 test213 test214 test215 test216 test217 test218 test219 test22 test220 test2200 test2201 test2202 test2203 test2204 test2205 test2206 test2207 test221 test222 test223 test224 test225 test226 test227 test228 test229 test23 test230 test2300 test2301 test2302 test2303 test2304 test2306 test2307 test2308 test2309 test231 test232 test233 test234 test235 test236 test237 test238 test239 test24 test240 test2400 test2401 test2402 test2403 test2404 test2405 test2406 test2407 test2408 test2409 test241 test2410 test2411 test242 test243 test244 test245 test246 test247 test248 test249 test25 test250 test2500 test2501 test2502 test2503 test2504 test2505 test2506 test251 test252 test253 test254 test255 test256 test257 test258 test259 test26 test260 test2600 test2601 test2602 test2603 test2604 test2605 test261 test262 test263 test264 test265 test266 test267 test268 test269 test27 test270 test2700 test2701 test2702 test2703 test2704 test2705 test2706 test2707 test2708 test2709 test271 test2710 test2711 test2712 test2713 test2714 test2715 test2716 test2717 test2718 test2719 test272 test2720 test2721 test2722 test2723 test273 test274 test275 test276 test277 test278 test279 test28 test280 test281 test282 test283 test284 test285 test286 test287 test288 test289 test29 test290 test291 test292 test293 test294 test295 test296 test297 test298 test299 test3 test30 test300 test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 test3008 test3009 test301 test3010 test3011 test3012 test3013 test3014 test3015 test3016 test3017 test3018 test3019 test302 test3020 test3021 test3022 test3023 test3024 test3025 test3026 test3027 test3028 test3029 test303 test3030 test3031 test3032 test3033 test3034 test3035 test3036 test304 test305 test306 test307 test308 test309 test31 test310 test3100 test3101 test3102 test3103 test3104 test3105 test3106 test311 test312 test313 test314 test315 test316 test317 test318 test319 test32 test320 test3200 test3201 test3202 test3203 test3204 test3205 test3206 test3207 test3208 test3209 test321 test3210 test3211 test3212 test3213 test3214 test3215 test3216 test3217 test3218 test3219 test322 test3220 test323 test324 test325 test326 test327 test328 test329 test33 test330 test3300 test3301 test3302 test331 test332 test333 test334 test335 test336 test337 test338 test339 test34 test340 test341 test342 test343 test344 test345 test346 test347 test348 test349 test35 test350 test351 test352 test353 test354 test355 test356 test357 test358 test359 test36 test360 test361 test362 test363 test364 test365 test366 test367 test368 test369 test37 test370 test371 test372 test373 test374 test375 test376 test378 test379 test38 test380 test381 test383 test384 test385 test386 test387 test388 test389 test39 test390 test391 test392 test393 test394 test395 test396 test397 test398 test399 test4 test40 test400 test4000 test4001 test401 test402 test403 test404 test405 test406 test407 test408 test409 test41 test410 test411 test412 test413 test414 test415 test416 test417 test418 test419 test42 test420 test421 test422 test423 test424 test425 test426 test427 test428 test429 test43 test430 test431 test432 test433 test434 test435 test436 test437 test438 test439 test44 test440 test441 test442 test443 test444 test445 test446 test447 test448 test449 test45 test450 test451 test452 test453 test454 test455 test456 test457 test458 test459 test46 test460 test461 test462 test463 test467 test468 test469 test47 test470 test471 test472 test473 test474 test475 test476 test477 test478 test479 test48 test480 test481 test482 test483 test484 test485 test486 test487 test488 test489 test49 test490 test491 test492 test493 test494 test495 test496 test497 test498 test499 test5 test50 test500 test501 test502 test503 test504 test505 test506 test507 test508 test509 test51 test510 test511 test512 test513 test514 test515 test516 test517 test518 test519 test52 test520 test521 test522 test523 test524 test525 test526 test527 test528 test529 test53 test530 test531 test532 test533 test534 test535 test536 test537 test538 test539 test54 test540 test541 test542 test543 test544 test545 test546 test547 test548 test549 test55 test550 test551 test552 test553 test554 test555 test556 test557 test558 test559 test56 test560 test561 test562 test563 test564 test565 test566 test567 test568 test569 test57 test570 test571 test572 test573 test574 test575 test576 test577 test578 test579 test58 test580 test581 test582 test583 test584 test585 test586 test587 test588 test589 test59 test590 test591 test592 test593 test594 test595 test596 test597 test598 test599 test6 test60 test600 test601 test602 test603 test604 test605 test606 test607 test608 test609 test61 test610 test611 test612 test613 test614 test615 test616 test617 test618 test619 test62 test620 test621 test622 test623 test624 test625 test626 test627 test628 test629 test63 test630 test631 test632 test633 test634 test635 test636 test637 test638 test639 test64 test640 test641 test642 test643 test644 test645 test646 test647 test648 test649 test65 test650 test651 test652 test653 test654 test655 test656 test658 test659 test66 test660 test661 test662 test663 test664 test665 test666 test667 test668 test669 test67 test670 test671 test672 test673 test674 test675 test676 test677 test678 test679 test68 test680 test681 test682 test683 test684 test685 test686 test687 test688 test689 test69 test690 test691 test692 test693 test694 test695 test696 test697 test698 test699 test7 test70 test700 test701 test702 test703 test704 test705 test706 test707 test708 test709 test71 test710 test711 test712 test713 test714 test715 test716 test717 test718 test719 test72 test720 test721 test722 test723 test724 test725 test726 test727 test728 test729 test73 test730 test731 test732 test733 test734 test735 test736 test737 test738 test739 test74 test740 test741 test742 test743 test744 test745 test746 test747 test748 test749 test75 test750 test751 test752 test753 test754 test755 test756 test757 test758 test759 test76 test760 test761 test762 test763 test764 test765 test766 test767 test768 test769 test77 test770 test771 test772 test773 test774 test775 test776 test777 test778 test779 test78 test780 test781 test782 test783 test784 test785 test786 test787 test788 test789 test79 test790 test791 test792 test793 test794 test795 test796 test797 test798 test799 test8 test80 test800 test801 test802 test803 test804 test805 test806 test807 test808 test809 test81 test810 test811 test812 test813 test814 test815 test816 test817 test818 test819 test82 test820 test821 test822 test823 test824 test825 test826 test827 test828 test829 test83 test830 test831 test832 test833 test834 test835 test836 test837 test838 test839 test84 test840 test841 test842 test843 test844 test845 test846 test847 test848 test849 test85 test850 test851 test852 test853 test854 test855 test856 test857 test858 test859 test86 test860 test861 test862 test863 test864 test865 test866 test867 test868 test869 test87 test870 test871 test872 test873 test874 test875 test876 test877 test878 test879 test88 test880 test881 test882 test883 test884 test885 test886 test887 test888 test889 test89 test890 test891 test892 test893 test894 test895 test896 test897 test898 test899 test9 test90 test900 test901 test902 test903 test904 test905 test906 test907 test908 test909 test91 test910 test911 test912 test913 test914 test915 test916 test917 test918 test919 test92 test920 test921 test922 test923 test924 test925 test926 test927 test928 test929 test93 test930 test931 test932 test933 test934 test935 test936 test937 test938 test939 test94 test940 test941 test942 test943 test944 test945 test946 test947 test948 test949 test95 test950 test951 test952 test953 test954 test955 test956 test957 test958 test959 test96 test960 test961 test962 test963 test964 test965 test966 test967 test968 test969 test97 test970 test971 test972 test973 test974 test975 test976 test977 test978 test979 test98 test980 test981 test982 test983 test984 test985 test986 test987 test988 test989 test99 test990 test991 test992 test993 test994 test995 test996 test997 test998 test999
http
testenv
mod_curltest .gitignore mod_curltest.c
__init__.py caddy.py certs.py client.py curl.py dante.py dnsd.py env.py httpd.py nghttpx.py ports.py sshd.py vsftpd.py ws_echo_server.py
.gitignore CMakeLists.txt Makefile.am config.ini.in conftest.py requirements.txt scorecard.py test_01_basic.py test_02_download.py test_03_goaway.py test_04_stuttered.py test_05_errors.py test_06_eyeballs.py test_07_upload.py test_08_caddy.py test_09_push.py test_10_proxy.py test_11_unix.py test_12_reuse.py test_13_proxy_auth.py test_14_auth.py test_15_tracing.py test_16_info.py test_17_ssl_use.py test_18_methods.py test_19_shutdown.py test_20_websockets.py test_21_resolve.py test_22_httpsrr.py test_30_vsftpd.py test_31_vsftpds.py test_32_ftps_vsftpd.py test_40_socks.py test_50_scp.py test_51_sftp.py
libtest .gitignore CMakeLists.txt Makefile.am Makefile.inc cli_ftp_upload.c cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c first.c first.h lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1582.c lib1587.c lib1588.c lib1589.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1902.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1920.c lib1921.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1965.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2504.c lib2505.c lib2506.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib757.c lib758.c lib766.c memptr.c mk-lib1521.pl test1013.pl test1022.pl test307.pl test610.pl test613.pl testtrace.c testtrace.h testutil.c testutil.h unitcheck.h
server .checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc dnsd.c first.c first.h getpart.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c util.c
tunit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.c
unit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1625.c unit1626.c unit1627.c unit1636.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1666.c unit1667.c unit1668.c unit1669.c unit1674.c unit1675.c unit1676.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit2605.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c unit3216.c unit3219.c unit3300.c unit3301.c unit3302.c
.gitignore CMakeLists.txt Makefile.am allversions.pm appveyor.pm azure.pm config.in configurehelp.pm.in devtest.pl dictserver.py directories.pm ech_combos.py ech_tests.sh ftpserver.pl getpart.pm globalconfig.pm http-server.pl http2-server.pl http3-server.pl memanalyze.pl memanalyzer.pm negtelnetserver.py nghttpx.conf pathhelp.pm processhelp.pm requirements.txt rtspserver.pl runner.pm runtests.pl secureserver.pl serverhelp.pm servers.pm smbserver.py sshhelp.pm sshserver.pl test1119.pl test1135.pl test1139.pl test1140.pl test1165.pl test1167.pl test1173.pl test1175.pl test1177.pl test1222.pl test1275.pl test1276.pl test1477.pl test1486.pl test1488.pl test1544.pl test1707.pl test745.pl test971.pl testcurl.pl testutil.pm tftpserver.pl util.py valgrind.pm valgrind.supp
.clang-tidy.yml .dir-locals.el .editorconfig .git-blame-ignore-revs .gitattributes .gitignore .mailmap CHANGES.md CMakeLists.txt COPYING Dockerfile GIT-INFO.md Makefile.am README README.md RELEASE-NOTES REUSE.toml SECURITY.md acinclude.m4 appveyor.sh appveyor.yml configure.ac curl-config.in libcurl.pc.in renovate.json
examples .env config.ini crypto_test.lua env_test.lua fs_example.lua http_server.lua https_test.lua ini_example.lua json.lua log.lua path_fs_example.lua process_example.lua request_download.lua request_test.lua run_all.lua sqlite_example.lua sqlite_http_template.lua stash_test.lua template_test.lua timer.lua websocket.lua
iniparser
.github
ISSUE_TEMPLATE config.yml
workflows disable-pull-requests.yml trigger-gitlab-ci.yml
cmake JoinPaths.cmake config.cmake.in pc.in
example iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.ini
src dictionary.c dictionary.h iniparser.c iniparser.h
test
ressources
bad_ini ends_well.ini twisted-errors.ini twisted-ofkey.ini twisted-ofval.ini
good_ini empty.ini spaced.ini spaced2.ini twisted.ini
gruezi.ini old.ini quotes.ini utf8.ini
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.h
.cmake-format.py .gitignore .gitlab-ci.yml .gitmessage .travis.yml AUTHORS CMakeLists.txt FAQ-en.md FAQ-zhcn.md INSTALL LICENSE README.md compile_commands.json
jinjac
example CMakeLists.txt example.c
jinjac_test_app CMakeLists.txt jinjac_test_app.c
libjinjac
include jinjac.h
src CMakeLists.txt ast.c ast.h block_statement.c block_statement.h buffer.c buffer.h buildin.c buildin.h common.h convert.c convert.h flex_decl.h jfunction.c jfunction.h jinja_expression.l jinja_expression.y jinjac_parse.c jinjac_parse.h jinjac_stream.c jinjac_stream.h jlist.c jlist.h jobject.c jobject.h parameter.c parameter.h str_obj.c str_obj.h trace.c trace.h
CMakeLists.txt
test .gitignore CMakeLists.txt autotest.rb test_01.expected test_01.jinja test_01b.expected test_01b.jinja test_01c.expected test_01c.jinja test_01d.expected test_01d.jinja test_02.expected test_02.jinja test_03.expected test_03.jinja test_04.expected test_04.jinja test_05.expected test_05.jinja test_06.expected test_06.jinja test_07.expected test_07.jinja test_08.expected test_08.jinja test_08b.expected test_08b.jinja test_09.expected test_09.jinja test_10.expected test_10.jinja test_11.expected test_11.jinja test_12.expected test_12.jinja test_13.expected test_13.jinja test_14.expected test_14.jinja test_15.expected test_15.jinja test_16.expected test_16.jinja test_17.expected test_17.jinja test_18.expected test_18.jinja test_18b.expected test_18b.jinja test_18c.expected test_18c.jinja test_19.expected test_19.jinja test_19b.expected test_19b.jinja test_19c.expected test_19c.jinja test_19d.expected test_19d.jinja test_19e.expected test_19e.jinja test_19f.expected test_19f.jinja test_20.expected test_20.jinja test_21.expected test_21.jinja test_22.expected test_22.jinja test_22a.expected test_22a.jinja test_22b.expected test_22b.jinja test_23.expected test_23.jinja test_24.expected test_24.jinja
.gitignore CMakeLists.txt LICENSE.txt README.md build_coverage.sh build_debug.sh build_release.sh cppcheck_analysis.sh
libev Changes LICENSE Makefile Makefile.am Makefile.in README Symbols.ev Symbols.event aclocal.m4 autogen.sh compile config.guess config.h config.h.in config.status config.sub configure configure.ac depcomp ev++.h ev.3 ev.c ev.h ev.pod ev_epoll.c ev_kqueue.c ev_poll.c ev_port.c ev_select.c ev_vars.h ev_win32.c ev_wrap.h event.c event.h install-sh libev.m4 libtool ltmain.sh missing mkinstalldirs stamp-h1
luajit
doc
img contact.png
bluequad-print.css bluequad.css contact.html ext_buffer.html ext_c_api.html ext_ffi.html ext_ffi_api.html ext_ffi_semantics.html ext_ffi_tutorial.html ext_jit.html ext_profiler.html extensions.html install.html luajit.html running.html
dynasm dasm_arm.h dasm_arm.lua dasm_arm64.h dasm_arm64.lua dasm_mips.h dasm_mips.lua dasm_mips64.lua dasm_ppc.h dasm_ppc.lua dasm_proto.h dasm_x64.lua dasm_x86.h dasm_x86.lua dynasm.lua
etc luajit.1 luajit.pc
src
host .gitignore README buildvm.c buildvm.h buildvm_asm.c buildvm_fold.c buildvm_lib.c buildvm_libbc.h buildvm_peobj.c genlibbc.lua genminilua.lua genversion.lua minilua.c
jit .gitignore bc.lua bcsave.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_mips.lua dis_mips64.lua dis_mips64el.lua dis_mips64r6.lua dis_mips64r6el.lua dis_mipsel.lua dis_ppc.lua dis_x64.lua dis_x86.lua dump.lua p.lua v.lua zone.lua
.gitignore Makefile Makefile.dep lauxlib.h lib_aux.c lib_base.c lib_bit.c lib_buffer.c lib_debug.c lib_ffi.c lib_init.c lib_io.c lib_jit.c lib_math.c lib_os.c lib_package.c lib_string.c lib_table.c lj_alloc.c lj_alloc.h lj_api.c lj_arch.h lj_asm.c lj_asm.h lj_asm_arm.h lj_asm_arm64.h lj_asm_mips.h lj_asm_ppc.h lj_asm_x86.h lj_assert.c lj_bc.c lj_bc.h lj_bcdump.h lj_bcread.c lj_bcwrite.c lj_buf.c lj_buf.h lj_carith.c lj_carith.h lj_ccall.c lj_ccall.h lj_ccallback.c lj_ccallback.h lj_cconv.c lj_cconv.h lj_cdata.c lj_cdata.h lj_char.c lj_char.h lj_clib.c lj_clib.h lj_cparse.c lj_cparse.h lj_crecord.c lj_crecord.h lj_ctype.c lj_ctype.h lj_debug.c lj_debug.h lj_def.h lj_dispatch.c lj_dispatch.h lj_emit_arm.h lj_emit_arm64.h lj_emit_mips.h lj_emit_ppc.h lj_emit_x86.h lj_err.c lj_err.h lj_errmsg.h lj_ff.h lj_ffrecord.c lj_ffrecord.h lj_frame.h lj_func.c lj_func.h lj_gc.c lj_gc.h lj_gdbjit.c lj_gdbjit.h lj_ir.c lj_ir.h lj_ircall.h lj_iropt.h lj_jit.h lj_lex.c lj_lex.h lj_lib.c lj_lib.h lj_load.c lj_mcode.c lj_mcode.h lj_meta.c lj_meta.h lj_obj.c lj_obj.h lj_opt_dce.c lj_opt_fold.c lj_opt_loop.c lj_opt_mem.c lj_opt_narrow.c lj_opt_sink.c lj_opt_split.c lj_parse.c lj_parse.h lj_prng.c lj_prng.h lj_profile.c lj_profile.h lj_record.c lj_record.h lj_serialize.c lj_serialize.h lj_snap.c lj_snap.h lj_state.c lj_state.h lj_str.c lj_str.h lj_strfmt.c lj_strfmt.h lj_strfmt_num.c lj_strscan.c lj_strscan.h lj_tab.c lj_tab.h lj_target.h lj_target_arm.h lj_target_arm64.h lj_target_mips.h lj_target_ppc.h lj_target_x86.h lj_trace.c lj_trace.h lj_traceerr.h lj_udata.c lj_udata.h lj_vm.h lj_vmevent.c lj_vmevent.h lj_vmmath.c ljamalg.c lua.h lua.hpp luaconf.h luajit.c luajit_rolling.h lualib.h msvcbuild.bat nxbuild.bat ps4build.bat ps5build.bat psvitabuild.bat vm_arm.dasc vm_arm64.dasc vm_mips.dasc vm_mips64.dasc vm_ppc.dasc vm_x64.dasc vm_x86.dasc xb1build.bat xedkbuild.bat
.gitattributes .gitignore .relver COPYRIGHT Makefile README
sqlite shell.c sqlite3.c sqlite3.h sqlite3ext.h
wolfssl
.github
ISSUE_TEMPLATE bug_report.yaml other.yaml
actions
install-apt-deps action.yml
scripts
zephyr-4.x external_libc.conf zephyr-test.sh
openssl-ech.sh tls-anvil-test.sh
workflows
disabled haproxy.yml hitch.yml hostap.yml
hostap-files
configs
07c9f183ea744ac04585fb6dd10220c75a5e2e74 hostapd.config tests wpa_supplicant.config
b607d2723e927a3446d89aed813f1aa6068186bb hostapd.config tests wpa_supplicant.config
hostap_2_10 extra.patch hostapd.config tests wpa_supplicant.config
Makefile README dbus-wpa_supplicant.conf
ada.yml arduino.yml async-examples.yml async.yml atecc608-sim.yml bind.yml cmake-autoconf.yml cmake.yml codespell.yml coverity-scan-fixes.yml cryptocb-only.yml curl.yml cyrus-sasl.yml disable-pk-algs.yml docker-Espressif.yml docker-OpenWrt.yml emnet-nonblock.yml fil-c.yml freertos-mem-track.yml gencertbuf.yml grpc.yml haproxy.yml hostap-vm.yml intelasm-c-fallback.yml ipmitool.yml jwt-cpp.yml krb5.yml libspdm.yml libssh2.yml libvncserver.yml linuxkm.yml macos-apple-native-cert-validation.yml mbedtls.sh mbedtls.yml membrowse-comment.yml membrowse-onboard.yml membrowse-report.yml memcached.sh memcached.yml mono.yml mosquitto.yml msmtp.yml msys2.yml multi-arch.yml multi-compiler.yml net-snmp.yml nginx.yml no-malloc.yml no-tls.yml nss.sh nss.yml ntp.yml ocsp.yml openldap.yml openssh.yml openssl-ech.yml opensslcoexist.yml openvpn.yml os-check.yml packaging.yml pam-ipmi.yml pq-all.yml pr-commit-check.yml psk.yml puf.yml python.yml rng-tools.yml rust-wrapper.yml se050-sim.yml smallStackSize.yml socat.yml softhsm.yml sssd.yml stm32-sim.yml stsafe-a120-sim.yml stunnel.yml symbol-prefixes.yml threadx.yml tls-anvil.yml trackmemory.yml watcomc.yml win-csharp-test.yml wolfCrypt-Wconversion.yml wolfboot-integration.yml wolfsm.yml xcode.yml zephyr-4.x.yml zephyr.yml
PULL_REQUEST_TEMPLATE.md SECURITY.md membrowse-targets.json
Docker
OpenWrt Dockerfile README.md runTests.sh
packaging
debian Dockerfile
fedora Dockerfile
wolfCLU Dockerfile README.md
yocto Dockerfile buildAndPush.sh
Dockerfile Dockerfile.cross-compiler README.md buildAndPush.sh include.am run.sh
IDE
ARDUINO
sketches
wolfssl_client README.md
wolfssl_server README.md
wolfssl_version README.md
README.md
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.h
AURIX Cpu0_Main.c README.md include.am user_settings.h wolf_main.c
Android Android.bp README.md include.am user_settings.h
CRYPTOCELL README.md include.am main.c user_settings.h
CSBENCH include.am user_settings.h
ECLIPSE
DEOS
deos_wolfssl .options
README.md deos_malloc.c include.am tls_wolfssl.c tls_wolfssl.h user_settings.h
MICRIUM README.md client_wolfssl.c client_wolfssl.h include.am server_wolfssl.c server_wolfssl.h user_settings.h wolfsslRunTests.c
RTTHREAD README.md include.am user_settings.h wolfssl_test.c
SIFIVE README.md include.am
Espressif
ESP-IDF
examples
template
VisualGDB wolfssl_template_IDF_v5.1_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_benchmark
VisualGDB wolfssl_benchmark_IDF_v4.4_ESP32.sln wolfssl_benchmark_IDF_v4.4_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32.sln wolfssl_benchmark_IDF_v5_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32C3.sln wolfssl_benchmark_IDF_v5_ESP32C3.vgdbproj wolfssl_benchmark_IDF_v5_ESP32S3.sln wolfssl_benchmark_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_client
VisualGDB README.md wolfssl_client_IDF_v5_ESP32.sln wolfssl_client_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include client-tls.h main.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild client-tls.c component.mk main.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbproj
wolfssl_server
VisualGDB README.md wolfssl_server_IDF_v5_ESP32.sln wolfssl_server_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h server-tls.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild component.mk main.c server-tls.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbproj
wolfssl_test
VisualGDB wolfssl_test-IDF_v5_ESP32.sln wolfssl_test-IDF_v5_ESP32.vgdbproj wolfssl_test-IDF_v5_ESP32C3.sln wolfssl_test-IDF_v5_ESP32C3.vgdbproj wolfssl_test-IDF_v5_ESP32C6.sln wolfssl_test-IDF_v5_ESP32C6.vgdbproj wolfssl_test_IDF_v5_ESP32S3.sln wolfssl_test_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32 sdkconfig.defaults.esp32c3 sdkconfig.defaults.esp32c6 sdkconfig.defaults.esp32h2 sdkconfig.defaults.esp32s2 sdkconfig.defaults.esp32s3 sdkconfig.defaults.esp8266 testAll.sh testMonitor.sh wolfssl_test_ESP8266.sln wolfssl_test_ESP8266.vgdbproj
wolfssl_test_idf
VisualGDB VisualGDB_wolfssl_test_idf.sln VisualGDB_wolfssl_test_idf.vgdbproj
main CMakeLists.txt Kconfig.projbuild component.mk main.c main_wip.c.ex time_helper.c time_helper.h
CMakeLists.txt Kconfig.projbuild README.md component.mk sdkconfig.defaults
README.md
libs CMakeLists.txt README.md component.mk tigard.cfg
test CMakeLists.txt README.md component.mk test_wolfssl.c
README.md README_32se.md UPDATE.md compileAllExamples.sh dummy_config_h dummy_test_paths.h setup.sh setup_win.bat user_settings.h
README.md include.am
GCC-ARM
Header user_settings.h
Source armtarget.c benchmark_main.c test_main.c tls_client.c tls_server.c wolf_main.c
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ld
Gaisler-BCC README.md include.am
HEXAGON
DSP Makefile wolfssl_dsp.idl
Makefile README.md build.sh ecc-verify-benchmark.c ecc-verify.c include.am user_settings.h
HEXIWEAR
wolfSSL_HW .cwGeneratedFileSetLog user_settings.h
IAR-EWARM
Projects
benchmark benchmark-main.c current_time.c wolfCrypt-benchmark.ewd wolfCrypt-benchmark.ewp
common minimum-startup.c wolfssl.icf
lib wolfSSL-Lib.ewd wolfSSL-Lib.ewp
test test-main.c wolfCrypt-test.ewd wolfCrypt-test.ewp
user_settings.h wolfssl.eww
embOS
SAMV71_XULT
embOS_SAMV71_XULT_Linker_Script samv71q21_wolfssl.icf
embOS_SAMV71_XULT_user_settings user_settings.h user_settings_simple_example.h user_settings_verbose_example.h
embOS_wolfcrypt_benchmark_SAMV71_XULT
Application runBenchmarks.c
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewp
embOS_wolfcrypt_lib_SAMV71_XULT README_wolfcrypt_lib wolfcrypt_lib.ewd wolfcrypt_lib.ewp
embOS_wolfcrypt_test_SAMV71_XULT
Application runWolfcryptTests.c
README_wolfcrypt_test wolfcrypt_test.ewd wolfcrypt_test.ewp
README_SAMV71
custom_port
custom_port_Linker_Script samv71q21_wolfssl.icf
custom_port_user_settings user_settings.h
wolfcrypt_benchmark_custom_port
Application runBenchmarks.c
wolfcrypt_test_custom_port
Application runWolfcryptTests.c
README_custom_port
extract_trial_here README_extract_trial_here
README
.gitignore README
IAR-MSP430 Makefile README.md include.am main.c user_settings.h
INTIME-RTOS Makefile README.md include.am libwolfssl.c libwolfssl.vcxproj user_settings.h wolfExamples.c wolfExamples.h wolfExamples.sln wolfExamples.vcxproj wolfssl-lib.sln wolfssl-lib.vcxproj
Infineon README.md include.am user_settings.h
KDS
config user_settings.h
include.am
LINUX-SGX README.md build.sh clean.sh include.am sgx_t_static.mk
LPCXPRESSO
lib_wolfssl lpc_18xx_port.c user_settings.h
wolf_example
src lpc_18xx_startup.c wolfssl_example.c
readme.txt
README.md
M68K
benchmark Makefile main.cpp
testwolfcrypt Makefile main.cpp
Makefile README.md include.am user_settings.h
MCUEXPRESSO
RT1170 fsl_caam_c.patch fsl_caam_h.patch user_settings.h
benchmark
source run_benchmark.c
wolfssl liblinks.xml
README.md include.am user_settings.h wolfcrypt_test.c
MDK-ARM
LPC43xx time-LCP43xx.c
MDK-ARM
wolfSSL Retarget.c cert_data.c cert_data.h config-BARE-METAL.h config-FS.h config-RTX-TCP-FS.h config-WOLFLIB.h main.c shell.c time-CortexM3-4.c time-dummy.c wolfssl_MDK_ARM.c wolfssl_MDK_ARM.h
STM32F2xx_StdPeriph_Lib time-STM32F2xx.c
MDK5-ARM
Conf user_settings.h
Inc wolfssl_MDK_ARM.h
Projects
CryptBenchmark Abstract.txt CryptBenchmark.sct CryptBenchmark.uvoptx CryptBenchmark.uvprojx main.c
CryptTest Abstract.txt CryptTest.sct CryptTest.uvoptx CryptTest.uvprojx main.c
EchoClient Abstract.txt EchoClient.uvoptx EchoClient.uvprojx main.c wolfssl-link.sct
EchoServer Abstract.txt EchoServer.uvoptx EchoServer.uvprojx main.c wolfssl-link.sct
SimpleClient Abstract.txt SimpleClient.uvoptx SimpleClient.uvprojx main.c wolfssl-link.sct
SimpleServer Abstract.txt SimpleServer.uvoptx SimpleServer.uvprojx main.c wolfssl-link.sct
wolfSSL-Full Abstract.txt main.c shell.c time-CortexM3-4.c wolfsslFull.uvoptx wolfsslFull.uvprojx
wolfSSL-Lib Abstract.txt wolfSSL-Lib.uvoptx wolfSSL-Lib.uvprojx
Src ssl-dummy.c
README.md include.am
MPLABX16
wolfcrypt_test.X
nbproject
private configurations.xml private.xml
configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
README.md include.am main.c user_settings.h
MQX Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.h
MSVS-2019-AZSPHERE
client client.c client.h
server server.c server.h
shared util.h
wolfssl_new_azsphere
HardwareDefinitions
avnet_mt3620_sk
inc
hw template_appliance.h
template_appliance.json
mt3620_rdb
inc
hw template_appliance.h
template_appliance.json
seeed_mt3620_mdb
inc
hw template_appliance.h
template_appliance.json
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.c
README.md include.am user_settings.h
MYSQL CMakeLists_wolfCrypt.txt CMakeLists_wolfSSL.txt do.sh
NDS README.md
NETOS Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.c
OPENSTM32 README.md
PlatformIO
examples
wolfssl_benchmark
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspace
wolfssl_test
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_test.code-workspace
README.md wolfssl_platformio.code-workspace
README.md include.am
QNX
CAAM-DRIVER Makefile
example-client Makefile client-tls.c
example-cmac Makefile cmac-test.c
example-server Makefile server-tls.c
testwolfcrypt Makefile
wolfssl Makefile user_settings.h
README.md include.am
RISCV
SIFIVE-HIFIVE1 Makefile README.md include.am main.c user_settings.h
SIFIVE-UNLEASHED README.md include.am
include.am
ROWLEY-CROSSWORKS-ARM Kinetis_FlashPlacement.xml README.md arm_startup.c benchmark_main.c hw.h include.am kinetis_hw.c retarget.c test_main.c user_settings.h wolfssl.hzp wolfssl_ltc.hzp
Renesas
cs+
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
t4_demo README_en.txt README_jp.txt t4_demo.mtpj wolf_client.c wolf_demo.h wolf_main.c wolf_server.c
test test.mtpj test_main.c
wolfssl_lib wolfssl_lib.mtpj
README include.am
e2studio
DK-S7G2
benchmark-template
src app_entry.c
example_server-template
src app_entry.c
wolfcrypttest-template
src app_entry.c
wolfssl-template-project configuration.xml
README.md include.am user_settings.h
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
tools generate_rsa_keypair.sh genhexbuf.pl rsa_pss_sign.sh
wolfssl
src .gitkeep
wolfcrypt
src .gitkeep
README include.am
RA6M3
benchmark-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
client-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
common
ra6m3g README.md
src freertos_tcp_port.c
user_settings.h util.h
server-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
test-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl
src .gitkeep
wolfcrypt .gitkeep
README.md README_APRA6M_en.md README_APRA6M_jp.md include.am
RA6M3G README.md
RA6M4
common user_settings.h wolfssl_demo.h
test
key_data key_data.h key_data_sce.c
src
SEGGER_RTT myprint.c
common .gitignore
test_main.c wolf_client.c wolfssl_sce_unit_test.c
test_RA6M4Debug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
README.md include.am
RX65N
GR-ROSE
common strings.h unistd.h user_settings.h wolfssl_dummy.c
smc smc.scfg
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
test.rcpc test_HardwareDebug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
README_EN.md README_JP.md include.am
RSK
resource section.esi
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h
InstructionManualForExample_RSK+RX65N-2MB_EN.pdf InstructionManualForExample_RSK+RX65N-2MB_JP.pdf README_EN.md README_JP.md include.am
RX72N
EnvisionKit
Simple
common sectioninfo.esi wolfssl_dummy.c
test
src
client simple_tcp_client.c simple_tls_tsip_client.c
server simple_tcp_server.c simple_tls_server.c
test_main.c wolfssl_simple_demo.h
test.rcpc test.scfg test_HardwareDebug.launch
wolfssl wolfssl.rcpc
README_EN.md README_JP.md
resource section.esi
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.c
InstructionManualForExample_RX72N_EnvisonKit_EN.pdf InstructionManualForExample_RX72N_EnvisonKit_JP.pdf README_EN.md README_JP.md include.am
RZN2L
common user_settings.h wolfssl_demo.h
test
src
serial_io app_print.c
test wolf_client.c wolf_server.c wolfssl_rsip_unit_test.c
wolfCrypt .gitignore
wolfSSL .gitignore
local_system_init.c rzn2l_tst_thread_entry.c wolfssl_dummy.c
README.md include.am
SK-S7G2
common user_settings.h
wolfssl_lib configuration.xml
.gitignore README.md include.am
STARCORE README.txt include.am starcore_test.c user_settings.h
STM32Cube README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.h
SimplicityStudio README.md include.am test_wolf.c user_settings.h
TRUESTUDIO
wolfssl user_settings.h
README include.am
VS-ARM README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VS-AZURE-SPHERE
client app_manifest.json client.c client.h client.vcxproj
server app_manifest.json server.c server.h server.vcxproj
shared util.h
wolfcrypt_test app_manifest.json wolfcrypt_test.vcxproj
README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VisualDSP include.am user_settings.h wolf_tasks.c
WICED-STUDIO README include.am user_settings.h
WIN README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxproj
WIN-SGX ReadMe.txt include.am wolfSSL_SGX.edl wolfSSL_SGX.sln wolfSSL_SGX.vcxproj
WIN-SRTP-KDF-140-3 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WIN10 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WINCE README.md include.am user_settings.h user_settings.h.140-2-deprecated
WORKBENCH README.md include.am
XCODE
Benchmark
wolfBench
Assets.xcassets
AppIcon.appiconset Contents.json
Base.lproj LaunchScreen.storyboard Main.storyboard
AppDelegate.h AppDelegate.m Info.plist ViewController.h ViewController.m main.m
wolfBench.xcodeproj project.pbxproj
include.am
wolfssl-FIPS.xcodeproj project.pbxproj
wolfssl.xcodeproj project.pbxproj
wolfssl_testsuite.xcodeproj project.pbxproj
README.md build-for-i386.sh include.am user_settings.h
XCODE-FIPSv2
macOS-C++
Intel user_settings.h
M1 user_settings.h
include.am user_settings.h
XCODE-FIPSv5 README include.am user_settings.h
XCODE-FIPSv6 README include.am user_settings.h
XilinxSDK
2018_2 lscript.ld
2019_2
wolfCrypt_example
src lscript.ld
wolfCrypt_example_system wolfCrypt_example_system.sprj
2022_1
wolfCrypt_FreeRTOS_example wolfCrypt_FreeRTOS_example.prj
wolfCrypt_FreeRTOS_example_system wolfCrypt_FreeRTOS_example_system.sprj
wolfCrypt_example wolfCrypt_example.prj
wolfCrypt_example_system wolfCrypt_example_system.sprj
.gitignore
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.c
apple-universal
wolfssl-multiplatform
wolfssl-multiplatform
Assets.xcassets
AccentColor.colorset Contents.json
AppIcon.appiconset Contents.json
Contents.json
ContentView.swift simple_client_example.c simple_client_example.h wolfssl-multiplatform-Bridging-Header.h wolfssl_multiplatform.entitlements wolfssl_multiplatformApp.swift wolfssl_test_driver.c wolfssl_test_driver.h
wolfssl-multiplatform.xcodeproj project.pbxproj
.gitignore README.md build-wolfssl-framework.sh include.am
iotsafe Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.h
iotsafe-raspberrypi Makefile README.md client-tls13.c include.am main.c
mynewt README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.sh
zephyr README.md include.am
include.am
RTOS
nuttx
wolfssl .gitignore Kconfig Make.defs Makefile README.md setup-wolfssl.sh user_settings.h
include.am
bsdkm Makefile README.md bsdkm_wc_port.h include.am wolfkmod.c wolfkmod_aes.c x86_vecreg.c
certs
1024 ca-cert.der ca-cert.pem ca-key.der ca-key.pem client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der dh1024.der dh1024.pem dsa-pub-1024.pem dsa1024.der dsa1024.pem include.am rsa1024.der server-cert.der server-cert.pem server-key.der server-key.pem
3072 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
4096 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
acert
rsa_pss acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem
acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem include.am
aia ca-issuers-cert.pem multi-aia-cert.pem overflow-aia-cert.pem
crl
extra-crls ca-int-cert-revoked.pem claim-root.pem crl_critical_entry.pem crlnum_57oct.pem crlnum_64oct.pem general-server-crl.pem large_crlnum.pem large_crlnum2.pem
hash_der 0fdb2da4.r0
hash_pem 0fdb2da4.r0
bad_time_fmt.pem ca-int-ecc.pem ca-int.pem ca-int2-ecc.pem ca-int2.pem caEcc384Crl.pem caEccCrl.der caEccCrl.pem cliCrl.pem client-int-ecc.pem client-int.pem crl.der crl.pem crl.revoked crl2.der crl2.pem crl_reason.pem crl_rsapss.pem eccCliCRL.pem eccSrvCRL.pem gencrls.sh include.am server-goodaltCrl.pem server-goodaltwildCrl.pem server-goodcnCrl.pem server-goodcnwildCrl.pem server-int-ecc.pem server-int.pem wolfssl.cnf
dilithium bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.am
ecc bp256r1-key.der bp256r1-key.pem ca-secp256k1-cert.pem ca-secp256k1-key.pem client-bp256r1-cert.der client-bp256r1-cert.pem client-secp256k1-cert.der client-secp256k1-cert.pem genecc.sh include.am secp256k1-key.der secp256k1-key.pem secp256k1-param.pem secp256k1-privkey.der secp256k1-privkey.pem server-bp256r1-cert.der server-bp256r1-cert.pem server-secp256k1-cert.der server-secp256k1-cert.pem server2-secp256k1-cert.der server2-secp256k1-cert.pem wolfssl.cnf wolfssl_384.cnf
ed25519 ca-ed25519-key.der ca-ed25519-key.pem ca-ed25519-priv.der ca-ed25519-priv.pem ca-ed25519.der ca-ed25519.pem client-ed25519-key.der client-ed25519-key.pem client-ed25519-priv.der client-ed25519-priv.pem client-ed25519.der client-ed25519.pem eddsa-ed25519.der eddsa-ed25519.pem gen-ed25519-certs.sh gen-ed25519-keys.sh gen-ed25519.sh include.am root-ed25519-key.der root-ed25519-key.pem root-ed25519-priv.der root-ed25519-priv.pem root-ed25519.der root-ed25519.pem server-ed25519-cert.pem server-ed25519-key.der server-ed25519-key.pem server-ed25519-priv.der server-ed25519-priv.pem server-ed25519.der server-ed25519.pem
ed448 ca-ed448-key.der ca-ed448-key.pem ca-ed448-priv.der ca-ed448-priv.pem ca-ed448.der ca-ed448.pem client-ed448-key.der client-ed448-key.pem client-ed448-priv.der client-ed448-priv.pem client-ed448.der client-ed448.pem gen-ed448-certs.sh gen-ed448-keys.sh include.am root-ed448-key.der root-ed448-key.pem root-ed448-priv.der root-ed448-priv.pem root-ed448.der root-ed448.pem server-ed448-cert.pem server-ed448-key.der server-ed448-key.pem server-ed448-priv.der server-ed448-priv.pem server-ed448.der server-ed448.pem
external DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.am
falcon bench_falcon_level1_key.der bench_falcon_level5_key.der include.am
intermediate
ca_false_intermediate gentestcert.sh int_ca.key server.key test_ca.key test_ca.pem test_int_not_cacert.pem test_sign_bynoca_srv.pem wolfssl_base.conf wolfssl_srv.conf
ca-ecc-bad-aki.der ca-ecc-bad-aki.pem ca-int-cert.der ca-int-cert.pem ca-int-ecc-cert.der ca-int-ecc-cert.pem ca-int-ecc-key.der ca-int-ecc-key.pem ca-int-key.der ca-int-key.pem ca-int2-cert.der ca-int2-cert.pem ca-int2-ecc-cert.der ca-int2-ecc-cert.pem ca-int2-ecc-key.der ca-int2-ecc-key.pem ca-int2-key.der ca-int2-key.pem client-chain-alt-ecc.pem client-chain-alt.pem client-chain-ecc.der client-chain-ecc.pem client-chain.der client-chain.pem client-int-cert.der client-int-cert.pem client-int-ecc-cert.der client-int-ecc-cert.pem genintcerts.sh include.am server-chain-alt-ecc.pem server-chain-alt.pem server-chain-ecc.der server-chain-ecc.pem server-chain-short.pem server-chain.der server-chain.pem server-int-cert.der server-int-cert.pem server-int-ecc-cert.der server-int-ecc-cert.pem
lms bc_hss_L2_H5_W8_root.der bc_hss_L3_H5_W4_root.der bc_lms_chain_ca.der bc_lms_chain_leaf.der bc_lms_native_bc_root.der bc_lms_sha256_h10_w8_root.der bc_lms_sha256_h5_w4_root.der include.am
mldsa README.txt include.am mldsa44-cert.der mldsa44-cert.pem mldsa44-key.pem mldsa44_bare-priv.der mldsa44_bare-seed.der mldsa44_oqskeypair.der mldsa44_priv-only.der mldsa44_pub-spki.der mldsa44_seed-only.der mldsa44_seed-priv.der mldsa65-cert.der mldsa65-cert.pem mldsa65-key.pem mldsa65_bare-priv.der mldsa65_bare-seed.der mldsa65_oqskeypair.der mldsa65_priv-only.der mldsa65_pub-spki.der mldsa65_seed-only.der mldsa65_seed-priv.der mldsa87-cert.der mldsa87-cert.pem mldsa87-key.pem mldsa87_bare-priv.der mldsa87_bare-seed.der mldsa87_oqskeypair.der mldsa87_priv-only.der mldsa87_pub-spki.der mldsa87_seed-only.der mldsa87_seed-priv.der
ocsp imposter-root-ca-cert.der imposter-root-ca-cert.pem imposter-root-ca-key.der imposter-root-ca-key.pem include.am index-ca-and-intermediate-cas.txt index-ca-and-intermediate-cas.txt.attr index-intermediate1-ca-issued-certs.txt index-intermediate1-ca-issued-certs.txt.attr index-intermediate2-ca-issued-certs.txt index-intermediate2-ca-issued-certs.txt.attr index-intermediate3-ca-issued-certs.txt index-intermediate3-ca-issued-certs.txt.attr intermediate1-ca-cert.der intermediate1-ca-cert.pem intermediate1-ca-key.der intermediate1-ca-key.pem intermediate2-ca-cert.der intermediate2-ca-cert.pem intermediate2-ca-key.der intermediate2-ca-key.pem intermediate3-ca-cert.der intermediate3-ca-cert.pem intermediate3-ca-key.der intermediate3-ca-key.pem ocsp-responder-cert.der ocsp-responder-cert.pem ocsp-responder-key.der ocsp-responder-key.pem openssl.cnf renewcerts-for-test.sh renewcerts.sh root-ca-cert.der root-ca-cert.pem root-ca-crl.pem root-ca-key.der root-ca-key.pem server1-cert.der server1-cert.pem server1-chain-noroot.pem server1-key.der server1-key.pem server2-cert.der server2-cert.pem server2-key.der server2-key.pem server3-cert.der server3-cert.pem server3-key.der server3-key.pem server4-cert.der server4-cert.pem server4-key.der server4-key.pem server5-cert.der server5-cert.pem server5-key.der server5-key.pem test-leaf-response.der test-multi-response.der test-response-nointern.der test-response-rsapss.der test-response.der
p521 ca-p521-key.der ca-p521-key.pem ca-p521-priv.der ca-p521-priv.pem ca-p521.der ca-p521.pem client-p521-key.der client-p521-key.pem client-p521-priv.der client-p521-priv.pem client-p521.der client-p521.pem gen-p521-certs.sh gen-p521-keys.sh include.am root-p521-key.der root-p521-key.pem root-p521-priv.der root-p521-priv.pem root-p521.der root-p521.pem server-p521-cert.pem server-p521-key.der server-p521-key.pem server-p521-priv.der server-p521-priv.pem server-p521.der server-p521.pem
renewcerts wolfssl.cnf
rpk client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.der
rsapss ca-3072-rsapss-key.der ca-3072-rsapss-key.pem ca-3072-rsapss-priv.der ca-3072-rsapss-priv.pem ca-3072-rsapss.der ca-3072-rsapss.pem ca-rsapss-key.der ca-rsapss-key.pem ca-rsapss-priv.der ca-rsapss-priv.pem ca-rsapss.der ca-rsapss.pem client-3072-rsapss-key.der client-3072-rsapss-key.pem client-3072-rsapss-priv.der client-3072-rsapss-priv.pem client-3072-rsapss.der client-3072-rsapss.pem client-rsapss-key.der client-rsapss-key.pem client-rsapss-priv.der client-rsapss-priv.pem client-rsapss.der client-rsapss.pem gen-rsapss-keys.sh include.am renew-rsapss-certs.sh root-3072-rsapss-key.der root-3072-rsapss-key.pem root-3072-rsapss-priv.der root-3072-rsapss-priv.pem root-3072-rsapss.der root-3072-rsapss.pem root-rsapss-key.der root-rsapss-key.pem root-rsapss-priv.der root-rsapss-priv.pem root-rsapss.der root-rsapss.pem server-3072-rsapss-cert.pem server-3072-rsapss-key.der server-3072-rsapss-key.pem server-3072-rsapss-priv.der server-3072-rsapss-priv.pem server-3072-rsapss.der server-3072-rsapss.pem server-mix-rsapss-cert.pem server-rsapss-cert.pem server-rsapss-key.der server-rsapss-key.pem server-rsapss-priv.der server-rsapss-priv.pem server-rsapss.der server-rsapss.pem
sia timestamping-sia-cert.pem
slhdsa bench_slhdsa_sha2_128f_key.der bench_slhdsa_sha2_128s_key.der bench_slhdsa_sha2_192f_key.der bench_slhdsa_sha2_192s_key.der bench_slhdsa_sha2_256f_key.der bench_slhdsa_sha2_256s_key.der bench_slhdsa_shake128f_key.der bench_slhdsa_shake128s_key.der bench_slhdsa_shake192f_key.der bench_slhdsa_shake192s_key.der bench_slhdsa_shake256f_key.der bench_slhdsa_shake256s_key.der client-mldsa44-priv.pem client-mldsa44-sha2.der client-mldsa44-sha2.pem client-mldsa44-shake.der client-mldsa44-shake.pem gen-slhdsa-mldsa-certs.sh include.am root-slhdsa-sha2-128s-priv.der root-slhdsa-sha2-128s-priv.pem root-slhdsa-sha2-128s.der root-slhdsa-sha2-128s.pem root-slhdsa-shake-128s-priv.der root-slhdsa-shake-128s-priv.pem root-slhdsa-shake-128s.der root-slhdsa-shake-128s.pem server-mldsa44-priv.pem server-mldsa44-sha2.der server-mldsa44-sha2.pem server-mldsa44-shake.der server-mldsa44-shake.pem
sm2 ca-sm2-key.der ca-sm2-key.pem ca-sm2-priv.der ca-sm2-priv.pem ca-sm2.der ca-sm2.pem client-sm2-key.der client-sm2-key.pem client-sm2-priv.der client-sm2-priv.pem client-sm2.der client-sm2.pem fix_sm2_spki.py gen-sm2-certs.sh gen-sm2-keys.sh include.am root-sm2-key.der root-sm2-key.pem root-sm2-priv.der root-sm2-priv.pem root-sm2.der root-sm2.pem self-sm2-cert.pem self-sm2-key.pem self-sm2-priv.pem server-sm2-cert.der server-sm2-cert.pem server-sm2-key.der server-sm2-key.pem server-sm2-priv.der server-sm2-priv.pem server-sm2.der server-sm2.pem
statickeys dh-ffdhe2048-params.pem dh-ffdhe2048-pub.der dh-ffdhe2048-pub.pem dh-ffdhe2048.der dh-ffdhe2048.pem ecc-secp256r1.der ecc-secp256r1.pem gen-static.sh include.am x25519-pub.der x25519-pub.pem x25519.der x25519.pem
test
expired expired-ca.der expired-ca.pem expired-cert.der expired-cert.pem
catalog.txt cert-bad-neg-int.der cert-bad-oid.der cert-bad-utf8.der cert-ext-ia.cfg cert-ext-ia.der cert-ext-ia.pem cert-ext-joi.cfg cert-ext-joi.der cert-ext-joi.pem cert-ext-mnc.der cert-ext-multiple.cfg cert-ext-multiple.der cert-ext-multiple.pem cert-ext-nc-combined.der cert-ext-nc-combined.pem cert-ext-nc.cfg cert-ext-nc.der cert-ext-nc.pem cert-ext-ncdns.der cert-ext-ncdns.pem cert-ext-ncip.der cert-ext-ncip.pem cert-ext-ncmixed.der cert-ext-ncmulti.der cert-ext-ncmulti.pem cert-ext-ncrid.der cert-ext-ncrid.pem cert-ext-nct.cfg cert-ext-nct.der cert-ext-nct.pem cert-ext-ndir-exc.cfg cert-ext-ndir-exc.der cert-ext-ndir-exc.pem cert-ext-ndir.cfg cert-ext-ndir.der cert-ext-ndir.pem cert-ext-ns.der cert-over-max-altnames.cfg cert-over-max-altnames.der cert-over-max-altnames.pem cert-over-max-nc.cfg cert-over-max-nc.der cert-over-max-nc.pem client-ecc-cert-ski.hex cn-ip-literal.der cn-ip-wildcard.der crit-cert.pem crit-key.pem dh1024.der dh1024.pem dh512.der dh512.pem digsigku.pem encrypteddata.msg gen-badsig.sh gen-ext-certs.sh gen-testcerts.sh include.am kari-keyid-cms.msg ktri-keyid-cms.msg ossl-trusted-cert.pem server-badaltname.der server-badaltname.pem server-badaltnull.der server-badaltnull.pem server-badcn.der server-badcn.pem server-badcnnull.der server-badcnnull.pem server-cert-ecc-badsig.der server-cert-ecc-badsig.pem server-cert-rsa-badsig.der server-cert-rsa-badsig.pem server-duplicate-policy.pem server-garbage.der server-garbage.pem server-goodalt.der server-goodalt.pem server-goodaltwild.der server-goodaltwild.pem server-goodcn.der server-goodcn.pem server-goodcnwild.der server-goodcnwild.pem server-localhost.der server-localhost.pem smime-test-canon.p7s smime-test-multipart-badsig.p7s smime-test-multipart.p7s smime-test.p7s
test-pathlen assemble-chains.sh chainA-ICA1-key.pem chainA-ICA1-pathlen0.pem chainA-assembled.pem chainA-entity-key.pem chainA-entity.pem chainB-ICA1-key.pem chainB-ICA1-pathlen0.pem chainB-ICA2-key.pem chainB-ICA2-pathlen1.pem chainB-assembled.pem chainB-entity-key.pem chainB-entity.pem chainC-ICA1-key.pem chainC-ICA1-pathlen1.pem chainC-assembled.pem chainC-entity-key.pem chainC-entity.pem chainD-ICA1-key.pem chainD-ICA1-pathlen127.pem chainD-assembled.pem chainD-entity-key.pem chainD-entity.pem chainE-ICA1-key.pem chainE-ICA1-pathlen128.pem chainE-assembled.pem chainE-entity-key.pem chainE-entity.pem chainF-ICA1-key.pem chainF-ICA1-pathlen1.pem chainF-ICA2-key.pem chainF-ICA2-pathlen0.pem chainF-assembled.pem chainF-entity-key.pem chainF-entity.pem chainG-ICA1-key.pem chainG-ICA1-pathlen0.pem chainG-ICA2-key.pem chainG-ICA2-pathlen1.pem chainG-ICA3-key.pem chainG-ICA3-pathlen99.pem chainG-ICA4-key.pem chainG-ICA4-pathlen5.pem chainG-ICA5-key.pem chainG-ICA5-pathlen20.pem chainG-ICA6-key.pem chainG-ICA6-pathlen10.pem chainG-ICA7-key.pem chainG-ICA7-pathlen100.pem chainG-assembled.pem chainG-entity-key.pem chainG-entity.pem chainH-ICA1-key.pem chainH-ICA1-pathlen0.pem chainH-ICA2-key.pem chainH-ICA2-pathlen2.pem chainH-ICA3-key.pem chainH-ICA3-pathlen2.pem chainH-ICA4-key.pem chainH-ICA4-pathlen2.pem chainH-assembled.pem chainH-entity-key.pem chainH-entity.pem chainI-ICA1-key.pem chainI-ICA1-no_pathlen.pem chainI-ICA2-key.pem chainI-ICA2-no_pathlen.pem chainI-ICA3-key.pem chainI-ICA3-pathlen2.pem chainI-assembled.pem chainI-entity-key.pem chainI-entity.pem chainJ-ICA1-key.pem chainJ-ICA1-no_pathlen.pem chainJ-ICA2-key.pem chainJ-ICA2-no_pathlen.pem chainJ-ICA3-key.pem chainJ-ICA3-no_pathlen.pem chainJ-ICA4-key.pem chainJ-ICA4-pathlen2.pem chainJ-assembled.pem chainJ-entity-key.pem chainJ-entity.pem include.am refreshkeys.sh
test-serial0 ee_normal.pem ee_serial0.pem generate_certs.sh include.am intermediate_serial0.pem root_serial0.pem root_serial0_key.pem selfsigned_nonca_serial0.pem
xmss bc_xmss_chain_ca.der bc_xmss_chain_leaf.der bc_xmss_sha2_10_256_root.der bc_xmss_sha2_16_256_root.der bc_xmssmt_sha2_20_2_256_root.der bc_xmssmt_sha2_20_4_256_root.der bc_xmssmt_sha2_40_8_256_root.der include.am
ca-cert-chain.der ca-cert.der ca-cert.pem ca-ecc-cert.der ca-ecc-cert.pem ca-ecc-key.der ca-ecc-key.pem ca-ecc384-cert.der ca-ecc384-cert.pem ca-ecc384-key.der ca-ecc384-key.pem ca-key-pkcs8-attribute.der ca-key.der ca-key.pem check_dates.sh client-absolute-urn.pem client-ca-cert.der client-ca-cert.pem client-ca.pem client-cert-ext.der client-cert-ext.pem client-cert.der client-cert.pem client-crl-dist.der client-crl-dist.pem client-ecc-ca-cert.der client-ecc-ca-cert.pem client-ecc-cert.der client-ecc-cert.pem client-ecc384-cert.der client-ecc384-cert.pem client-ecc384-key.der client-ecc384-key.pem client-key.der client-key.pem client-keyEnc.pem client-keyPub.der client-keyPub.pem client-relative-uri.pem client-uri-cert.pem csr.attr.der csr.dsa.der csr.dsa.pem csr.ext.der csr.signed.der dh-priv-2048.der dh-priv-2048.pem dh-pub-2048.der dh-pub-2048.pem dh-pubkey-2048.der dh2048.der dh2048.pem dh3072.der dh3072.pem dh4096.der dh4096.pem dsa-pubkey-2048.der dsa2048.der dsa2048.pem dsa3072.der dsaparams.der dsaparams.pem ecc-client-key.der ecc-client-key.pem ecc-client-keyPub.der ecc-client-keyPub.pem ecc-key-comp.pem ecc-keyPkcs8.der ecc-keyPkcs8.pem ecc-keyPkcs8Enc.der ecc-keyPkcs8Enc.pem ecc-keyPub.der ecc-keyPub.pem ecc-params.der ecc-params.pem ecc-privOnlyCert.pem ecc-privOnlyKey.pem ecc-privkey.der ecc-privkey.pem ecc-privkeyPkcs8.der ecc-privkeyPkcs8.pem ecc-rsa-server.p12 empty-issuer-cert.pem entity-no-ca-bool-cert.pem entity-no-ca-bool-key.pem fpki-cert.der fpki-certpol-cert.der gen_revoked.sh include.am renewcerts.sh rid-cert.der rsa-pub-2048.pem rsa2048.der rsa3072.der server-cert-chain.der server-cert.der server-cert.pem server-ecc-comp.der server-ecc-comp.pem server-ecc-rsa.der server-ecc-rsa.pem server-ecc-self.der server-ecc-self.pem server-ecc.der server-ecc.pem server-ecc384-cert.der server-ecc384-cert.pem server-ecc384-key.der server-ecc384-key.pem server-key.der server-key.pem server-keyEnc.pem server-keyPkcs8.der server-keyPkcs8.pem server-keyPkcs8Enc.der server-keyPkcs8Enc.pem server-keyPkcs8Enc12.pem server-keyPkcs8Enc2.pem server-keyPub.der server-keyPub.pem server-revoked-cert.pem server-revoked-key.pem taoCert.txt test-ber-exp02-05-2022.p7b test-degenerate.p7b test-multiple-recipients.p7b test-servercert-rc2.p12 test-servercert.p12 test-stream-dec.p7b test-stream-sign.p7b wolfssl-website-ca.pem x942dh2048.der x942dh2048.pem
cmake
consumer CMakeLists.txt README.md main.c
modules FindARIA.cmake FindOQS.cmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.in
debian
source format
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.in
doc
dox_comments
header_files aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h puf.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wc_she.h wc_slhdsa.h wolfio.h
header_files-ja aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wolfio.h
formats
html
html_changes
search search.css search.js
customdoxygen.css doxygen.css menu.js menudata.js tabs.css
Doxyfile footer.html header.html mainpage.dox
pdf Doxyfile header.tex
images wolfssl_logo.png
QUIC.md README.txt README_DOXYGEN check_api.sh generate_documentation.sh include.am
examples
asn1 asn1.c dumpasn1.cfg gen_oid_names.rb include.am oid_names.h
async Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.h
benchmark include.am tls_bench.c tls_bench.h
client client.c client.h client.sln client.vcproj client.vcxproj include.am
configs README.md include.am user_settings_EBSnet.h user_settings_all.h user_settings_arduino.h user_settings_baremetal.h user_settings_ca.h user_settings_curve25519nonblock.h user_settings_dtls13.h user_settings_eccnonblock.h user_settings_espressif.h user_settings_fipsv2.h user_settings_fipsv5.h user_settings_min_ecc.h user_settings_openssl_compat.h user_settings_pkcs7.h user_settings_platformio.h user_settings_pq.h user_settings_rsa_only.h user_settings_stm32.h user_settings_template.h user_settings_tls12.h user_settings_tls13.h user_settings_wolfboot_keytools.h user_settings_wolfssh.h user_settings_wolftpm.h
crypto_policies
default wolfssl.txt
future wolfssl.txt
legacy wolfssl.txt
echoclient echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quit
echoserver echoserver.c echoserver.h echoserver.sln echoserver.vcproj echoserver.vcxproj include.am
ocsp_responder include.am ocsp_responder.c ocsp_responder.h
pem include.am pem.c
sctp include.am sctp-client-dtls.c sctp-client.c sctp-server-dtls.c sctp-server.c
server include.am server.c server.h server.sln server.vcproj server.vcxproj
README.md include.am
linuxkm
patches
5.10.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v17.patch
5.10.236 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v236.patch
5.14.0-570.58.1.el9_6 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v14-570v58v1-el9_6.patch
5.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v15.patch
5.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17.patch
5.17-ubuntu-jammy-tegra WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17-ubuntu-jammy-tegra.patch
6.1.73 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v1v73.patch
6.12 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v12.patch
6.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v15.patch
7.0 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-7v0.patch
regen-patches.sh
Kbuild Makefile README.md get_thread_size.c include.am linuxkm-fips-hash-wrapper.sh linuxkm-fips-hash.c linuxkm_memory.c linuxkm_memory.h linuxkm_wc_port.h lkcapi_aes_glue.c lkcapi_dh_glue.c lkcapi_ecdh_glue.c lkcapi_ecdsa_glue.c lkcapi_glue.c lkcapi_rsa_glue.c lkcapi_sha_glue.c module_exports.c.template module_hooks.c pie_redirect_table.c wolfcrypt.lds x86_vector_register_glue.c
m4 ax_add_am_macro.m4 ax_am_jobserver.m4 ax_am_macros.m4 ax_append_compile_flags.m4 ax_append_flag.m4 ax_append_link_flags.m4 ax_append_to_file.m4 ax_atomic.m4 ax_bsdkm.m4 ax_check_compile_flag.m4 ax_check_link_flag.m4 ax_compiler_version.m4 ax_count_cpus.m4 ax_create_generic_config.m4 ax_debug.m4 ax_file_escapes.m4 ax_harden_compiler_flags.m4 ax_linuxkm.m4 ax_print_to_file.m4 ax_pthread.m4 ax_require_defined.m4 ax_tls.m4 ax_vcs_checkout.m4 hexversion.m4 lib_socket_nsl.m4 visibility.m4
mcapi
wolfcrypt_mcapi.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
zlib.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README crypto.c crypto.h include.am mcapi_test.c user_settings.h
mplabx
wolfcrypt_benchmark.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README benchmark_main.c include.am test_main.c user_settings.h
mqx
util_lib
Sources include.am util.c util.h
wolfcrypt_benchmark
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfcrypt_test
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfssl include.am
wolfssl_client
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
README
rpm include.am spec.in
scripts
bench bench_functions.sh
aria-cmake-build-test.sh asn1_oid_sum.pl benchmark.test benchmark_compare.sh cleanup_testfiles.sh crl-gen-openssl.test crl-revoked.test dertoc.pl dtls.test dtlscid.test external.test google.test include.am makedistsmall.sh memtest.sh ocsp-responder-openssl-interop.test ocsp-stapling-with-ca-as-responder.test ocsp-stapling-with-wolfssl-responder.test ocsp-stapling.test ocsp-stapling2.test ocsp-stapling_tls13multi.test ocsp.test openssl.test openssl_srtp.test pem.test ping.test pkcallbacks.test psk.test resume.test rsapss.test sniffer-gen.sh sniffer-ipv6.pcap sniffer-static-rsa.pcap sniffer-testsuite.test sniffer-tls12-keylog.out sniffer-tls12-keylog.pcap sniffer-tls12-keylog.sslkeylog sniffer-tls13-dh-resume.pcap sniffer-tls13-dh.pcap sniffer-tls13-ecc-resume.pcap sniffer-tls13-ecc.pcap sniffer-tls13-hrr.pcap sniffer-tls13-keylog.out sniffer-tls13-keylog.pcap sniffer-tls13-keylog.sslkeylog sniffer-tls13-x25519-resume.pcap sniffer-tls13-x25519.pcap stm32l4-v4_0_1_build.sh tls13.test trusted_peer.test unit.test.in user_settings_asm.sh
src bio.c conf.c crl.c dtls.c dtls13.c include.am internal.c keys.c ocsp.c pk.c pk_ec.c pk_rsa.c quic.c sniffer.c ssl.c ssl_api_cert.c ssl_api_crl_ocsp.c ssl_api_pk.c ssl_asn1.c ssl_bn.c ssl_certman.c ssl_crypto.c ssl_ech.c ssl_load.c ssl_misc.c ssl_p7p12.c ssl_sess.c ssl_sk.c tls.c tls13.c wolfio.c x509.c x509_str.c
sslSniffer
sslSnifferTest README_WIN.md include.am snifftest.c sslSniffTest.vcproj sslSniffTest.vcxproj
README.md sslSniffer.vcproj sslSniffer.vcxproj
support gen-debug-trace-error-codes.sh include.am wolfssl.pc.in
tests
api api.h api_decl.h create_ocsp_test_blobs.py include.am test_aes.c test_aes.h test_arc4.c test_arc4.h test_ascon.c test_ascon.h test_ascon_kats.h test_asn.c test_asn.h test_blake2.c test_blake2.h test_camellia.c test_camellia.h test_certman.c test_certman.h test_chacha.c test_chacha.h test_chacha20_poly1305.c test_chacha20_poly1305.h test_cmac.c test_cmac.h test_curve25519.c test_curve25519.h test_curve448.c test_curve448.h test_des3.c test_des3.h test_dh.c test_dh.h test_digest.h test_dsa.c test_dsa.h test_dtls.c test_dtls.h test_ecc.c test_ecc.h test_ed25519.c test_ed25519.h test_ed448.c test_ed448.h test_evp.c test_evp.h test_evp_cipher.c test_evp_cipher.h test_evp_digest.c test_evp_digest.h test_evp_pkey.c test_evp_pkey.h test_hash.c test_hash.h test_hmac.c test_hmac.h test_md2.c test_md2.h test_md4.c test_md4.h test_md5.c test_md5.h test_mldsa.c test_mldsa.h test_mlkem.c test_mlkem.h test_ocsp.c test_ocsp.h test_ocsp_test_blobs.h test_ossl_asn1.c test_ossl_asn1.h test_ossl_bio.c test_ossl_bio.h test_ossl_bn.c test_ossl_bn.h test_ossl_cipher.c test_ossl_cipher.h test_ossl_dgst.c test_ossl_dgst.h test_ossl_dh.c test_ossl_dh.h test_ossl_dsa.c test_ossl_dsa.h test_ossl_ec.c test_ossl_ec.h test_ossl_ecx.c test_ossl_ecx.h test_ossl_mac.c test_ossl_mac.h test_ossl_obj.c test_ossl_obj.h test_ossl_p7p12.c test_ossl_p7p12.h test_ossl_pem.c test_ossl_pem.h test_ossl_rand.c test_ossl_rand.h test_ossl_rsa.c test_ossl_rsa.h test_ossl_sk.c test_ossl_sk.h test_ossl_x509.c test_ossl_x509.h test_ossl_x509_acert.c test_ossl_x509_acert.h test_ossl_x509_crypto.c test_ossl_x509_crypto.h test_ossl_x509_ext.c test_ossl_x509_ext.h test_ossl_x509_info.c test_ossl_x509_info.h test_ossl_x509_io.c test_ossl_x509_io.h test_ossl_x509_lu.c test_ossl_x509_lu.h test_ossl_x509_name.c test_ossl_x509_name.h test_ossl_x509_pk.c test_ossl_x509_pk.h test_ossl_x509_str.c test_ossl_x509_str.h test_ossl_x509_vp.c test_ossl_x509_vp.h test_pkcs12.c test_pkcs12.h test_pkcs7.c test_pkcs7.h test_poly1305.c test_poly1305.h test_random.c test_random.h test_rc2.c test_rc2.h test_ripemd.c test_ripemd.h test_rsa.c test_rsa.h test_sha.c test_sha.h test_sha256.c test_sha256.h test_sha3.c test_sha3.h test_sha512.c test_sha512.h test_she.c test_she.h test_signature.c test_signature.h test_slhdsa.c test_slhdsa.h test_sm2.c test_sm2.h test_sm3.c test_sm3.h test_sm4.c test_sm4.h test_tls.c test_tls.h test_tls13.c test_tls13.h test_tls_ext.c test_tls_ext.h test_wc_encrypt.c test_wc_encrypt.h test_wolfmath.c test_wolfmath.h test_x509.c test_x509.h
emnet
IP IP.h
Makefile emnet_nonblock_test.c emnet_shim.c
freertos-mem-track-repro FreeRTOS.h repro.c run.sh semphr.h task.h user_settings.h
swdev .gitignore Makefile README.md swdev.c swdev.h swdev_loader.c swdev_loader.h user_settings.h
CONF_FILES_README.md NCONF_test.cnf README TXT_DB.txt api.c include.am quic.c srp.c suites.c test-altchains.conf test-chains.conf test-dhprime.conf test-dtls-downgrade.conf test-dtls-fails-cipher.conf test-dtls-fails.conf test-dtls-group.conf test-dtls-mtu.conf test-dtls-reneg-client.conf test-dtls-reneg-server.conf test-dtls-resume.conf test-dtls-sha2.conf test-dtls-srtp-fails.conf test-dtls-srtp.conf test-dtls.conf test-dtls13-cid.conf test-dtls13-downgrade-fails.conf test-dtls13-downgrade.conf test-dtls13-pq-hybrid-extra-frag.conf test-dtls13-pq-hybrid-extra.conf test-dtls13-pq-hybrid-frag.conf test-dtls13-pq-standalone-frag.conf test-dtls13-pq-standalone.conf test-dtls13-psk.conf test-dtls13.conf test-ecc-cust-curves.conf test-ed25519.conf test-ed448.conf test-enckeys.conf test-fails.conf test-maxfrag-dtls.conf test-maxfrag.conf test-p521.conf test-psk-no-id-sha2.conf test-psk-no-id.conf test-psk.conf test-rsapss.conf test-sctp-sha2.conf test-sctp.conf test-sha2.conf test-sig.conf test-sm2.conf test-tls-downgrade.conf test-tls13-down.conf test-tls13-ecc.conf test-tls13-pq-hybrid-extra.conf test-tls13-pq-hybrid.conf test-tls13-pq-standalone.conf test-tls13-psk-certs.conf test-tls13-psk.conf test-tls13-slhdsa-fail.conf test-tls13-slhdsa-sha2.conf test-tls13-slhdsa-shake.conf test-tls13.conf test-trustpeer.conf test.conf unit.c unit.h utils.c utils.h w64wrapper.c
testsuite include.am testsuite.c testsuite.sln testsuite.vcproj testsuite.vcxproj utils.c utils.h
tirtos
packages
ti
net
wolfssl
tests
EK_TM4C1294XL
wolfcrypt
benchmark TM4C1294NC.icf benchmark.cfg main.c package.bld.hide package.xdc
test TM4C1294NC.icf main.c package.bld.hide package.xdc test.cfg
package.bld package.xdc package.xs
.gitignore README include.am products.mak wolfssl.bld wolfssl.mak
wolfcrypt
benchmark README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.am
src
port
Espressif
esp_crt_bundle README.md cacrt_all.pem cacrt_deprecated.pem cacrt_local.pem esp_crt_bundle.c gen_crt_bundle.py pio_install_cryptography.py
README.md esp32_aes.c esp32_mp.c esp32_sha.c esp32_util.c esp_sdk_mem_lib.c esp_sdk_time_lib.c esp_sdk_wifi_lib.c
Renesas README.md renesas_common.c renesas_fspsm_aes.c renesas_fspsm_rsa.c renesas_fspsm_sha.c renesas_fspsm_util.c renesas_rx64_hw_sha.c renesas_rx64_hw_util.c renesas_tsip_aes.c renesas_tsip_rsa.c renesas_tsip_sha.c renesas_tsip_util.c
af_alg afalg_aes.c afalg_hash.c wc_afalg.c
aria aria-crypt.c aria-cryptocb.c
arm armv8-32-aes-asm.S armv8-32-aes-asm_c.c armv8-32-chacha-asm.S armv8-32-chacha-asm_c.c armv8-32-curve25519.S armv8-32-curve25519_c.c armv8-32-mlkem-asm.S armv8-32-mlkem-asm_c.c armv8-32-poly1305-asm.S armv8-32-poly1305-asm_c.c armv8-32-sha256-asm.S armv8-32-sha256-asm_c.c armv8-32-sha3-asm.S armv8-32-sha3-asm_c.c armv8-32-sha512-asm.S armv8-32-sha512-asm_c.c armv8-aes-asm.S armv8-aes-asm_c.c armv8-aes.c armv8-chacha-asm.S armv8-chacha-asm_c.c armv8-curve25519.S armv8-curve25519_c.c armv8-mlkem-asm.S armv8-mlkem-asm_c.c armv8-poly1305-asm.S armv8-poly1305-asm_c.c armv8-sha256-asm.S armv8-sha256-asm_c.c armv8-sha256.c armv8-sha3-asm.S armv8-sha3-asm_c.c armv8-sha512-asm.S armv8-sha512-asm_c.c armv8-sha512.c cryptoCell.c cryptoCellHash.c thumb2-aes-asm.S thumb2-aes-asm_c.c thumb2-chacha-asm.S thumb2-chacha-asm_c.c thumb2-curve25519.S thumb2-curve25519_c.c thumb2-mlkem-asm.S thumb2-mlkem-asm_c.c thumb2-poly1305-asm.S thumb2-poly1305-asm_c.c thumb2-sha256-asm.S thumb2-sha256-asm_c.c thumb2-sha3-asm.S thumb2-sha3-asm_c.c thumb2-sha512-asm.S thumb2-sha512-asm_c.c
atmel README.md atmel.c
autosar README.md cryif.c crypto.c csm.c include.am test.c
caam README.md caam_aes.c caam_doc.pdf caam_driver.c caam_error.c caam_integrity.c caam_qnx.c caam_sha.c wolfcaam_aes.c wolfcaam_cmac.c wolfcaam_ecdsa.c wolfcaam_fsl_nxp.c wolfcaam_hash.c wolfcaam_hmac.c wolfcaam_init.c wolfcaam_qnx.c wolfcaam_rsa.c wolfcaam_seco.c wolfcaam_x25519.c
cavium README.md README_Octeon.md cavium_nitrox.c cavium_octeon_sync.c
cuda README.md aes-cuda.cu
cypress README.md psoc6_crypto.c
devcrypto README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.c
intel README.md quickassist.c quickassist_mem.c quickassist_sync.c
iotsafe iotsafe.c
kcapi README.md kcapi_aes.c kcapi_dh.c kcapi_ecc.c kcapi_hash.c kcapi_hmac.c kcapi_rsa.c
liboqs liboqs.c
maxim README.md max3266x.c maxq10xx.c
mynewt mynewt_port.c
nxp README.md README_SE050.md casper_port.c dcp_port.c hashcrypt_port.c ksdk_port.c se050_port.c
pic32 pic32mz-crypt.c
ppc32 ppc32-sha256-asm.S ppc32-sha256-asm_c.c ppc32-sha256-asm_cr.c
psa README.md psa.c psa_aes.c psa_hash.c psa_pkcbs.c
riscv riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.c
rpi_pico README.md pico.c
silabs README.md silabs_aes.c silabs_ecc.c silabs_hash.c silabs_random.c
st README.md STM32MP13.md STM32MP25.md stm32.c stsafe.c
ti ti-aes.c ti-ccm.c ti-des3.c ti-hash.c
tropicsquare README.md tropic01.c
xilinx xil-aesgcm.c xil-sha3.c xil-versal-glue.c xil-versal-trng.c
nrf51.c
ASN_TEMPLATE.md aes.c aes_asm.S aes_asm.asm aes_gcm_asm.S aes_gcm_asm.asm aes_gcm_x86_asm.S aes_xts_asm.S aes_xts_asm.asm arc4.c ascon.c asm.c asn.c asn_orig.c async.c blake2b.c blake2s.c camellia.c chacha.c chacha20_poly1305.c chacha_asm.S chacha_asm.asm cmac.c coding.c compress.c cpuid.c cryptocb.c curve25519.c curve448.c des3.c dh.c dilithium.c dsa.c ecc.c ecc_fp.c eccsi.c ed25519.c ed448.c error.c evp.c evp_pk.c falcon.c fe_448.c fe_low_mem.c fe_operations.c fe_x25519_128.h fe_x25519_asm.S fp_mont_small.i fp_mul_comba_12.i fp_mul_comba_17.i fp_mul_comba_20.i fp_mul_comba_24.i fp_mul_comba_28.i fp_mul_comba_3.i fp_mul_comba_32.i fp_mul_comba_4.i fp_mul_comba_48.i fp_mul_comba_6.i fp_mul_comba_64.i fp_mul_comba_7.i fp_mul_comba_8.i fp_mul_comba_9.i fp_mul_comba_small_set.i fp_sqr_comba_12.i fp_sqr_comba_17.i fp_sqr_comba_20.i fp_sqr_comba_24.i fp_sqr_comba_28.i fp_sqr_comba_3.i fp_sqr_comba_32.i fp_sqr_comba_4.i fp_sqr_comba_48.i fp_sqr_comba_6.i fp_sqr_comba_64.i fp_sqr_comba_7.i fp_sqr_comba_8.i fp_sqr_comba_9.i fp_sqr_comba_small_set.i ge_448.c ge_low_mem.c ge_operations.c hash.c hmac.c hpke.c include.am integer.c kdf.c logging.c md2.c md4.c md5.c memory.c misc.c pkcs12.c pkcs7.c poly1305.c poly1305_asm.S poly1305_asm.asm puf.c pwdbased.c random.c rc2.c ripemd.c rng_bank.c rsa.c sakke.c sha.c sha256.c sha256_asm.S sha3.c sha3_asm.S sha512.c sha512_asm.S signature.c siphash.c sm2.c sm3.c sm3_asm.S sm4.c sp_arm32.c sp_arm64.c sp_armthumb.c sp_c32.c sp_c64.c sp_cortexm.c sp_dsp32.c sp_int.c sp_sm2_arm32.c sp_sm2_arm64.c sp_sm2_armthumb.c sp_sm2_c32.c sp_sm2_c64.c sp_sm2_cortexm.c sp_sm2_x86_64.c sp_sm2_x86_64_asm.S sp_x86_64.c sp_x86_64_asm.S sp_x86_64_asm.asm srp.c tfm.c wc_dsp.c wc_encrypt.c wc_lms.c wc_lms_impl.c wc_mldsa_asm.S wc_mlkem.c wc_mlkem_asm.S wc_mlkem_poly.c wc_pkcs11.c wc_port.c wc_she.c wc_slhdsa.c wc_xmss.c wc_xmss_impl.c wolfentropy.c wolfevent.c wolfmath.c
test README.md include.am test-VS2022.sln test-VS2022.vcxproj test-VS2022.vcxproj.user test.c test.h test.sln test.vcproj test_paths.h.in
wolfssl
openssl aes.h asn1.h asn1t.h bio.h bn.h buffer.h camellia.h cmac.h cms.h compat_types.h conf.h crypto.h des.h dh.h dsa.h ec.h ec25519.h ec448.h ecdh.h ecdsa.h ed25519.h ed448.h engine.h err.h evp.h fips_rand.h hmac.h include.am kdf.h lhash.h md4.h md5.h modes.h obj_mac.h objects.h ocsp.h opensslconf.h opensslv.h ossl_typ.h pem.h pkcs12.h pkcs7.h rand.h rc4.h ripemd.h rsa.h safestack.h sha.h sha3.h srp.h ssl.h ssl23.h stack.h tls1.h txt_db.h ui.h x509.h x509_vfy.h x509v3.h
wolfcrypt
port
Espressif esp-sdk-lib.h esp32-crypt.h esp_crt_bundle.h
Renesas renesas-fspsm-crypt.h renesas-fspsm-types.h renesas-rx64-hw-crypt.h renesas-tsip-crypt.h renesas_cmn.h renesas_fspsm_internal.h renesas_sync.h renesas_tsip_internal.h renesas_tsip_types.h
af_alg afalg_hash.h wc_afalg.h
aria aria-crypt.h aria-cryptocb.h
arm cryptoCell.h
atmel atmel.h
autosar CryIf.h Crypto.h Csm.h StandardTypes.h
caam caam_driver.h caam_error.h caam_qnx.h wolfcaam.h wolfcaam_aes.h wolfcaam_cmac.h wolfcaam_ecdsa.h wolfcaam_fsl_nxp.h wolfcaam_hash.h wolfcaam_qnx.h wolfcaam_rsa.h wolfcaam_seco.h wolfcaam_sha.h wolfcaam_x25519.h
cavium cavium_nitrox.h cavium_octeon_sync.h
cypress psoc6_crypto.h
devcrypto wc_devcrypto.h
intel quickassist.h quickassist_mem.h quickassist_sync.h
iotsafe iotsafe.h
kcapi kcapi_dh.h kcapi_ecc.h kcapi_hash.h kcapi_hmac.h kcapi_rsa.h wc_kcapi.h
liboqs liboqs.h
maxim max3266x-cryptocb.h max3266x.h maxq10xx.h
nxp casper_port.h dcp_port.h hashcrypt_port.h ksdk_port.h se050_port.h
pic32 pic32mz-crypt.h
psa psa.h
riscv riscv-64-asm.h
rpi_pico pico.h
silabs silabs_aes.h silabs_ecc.h silabs_hash.h silabs_random.h
st stm32.h stsafe.h
ti ti-ccm.h ti-hash.h
tropicsquare tropic01.h
xilinx xil-sha3.h xil-versal-glue.h xil-versal-trng.h
nrf51.h
aes.h arc4.h ascon.h asn.h asn_public.h async.h blake2-impl.h blake2-int.h blake2.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cpuid.h cryptocb.h curve25519.h curve448.h des3.h dh.h dilithium.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h falcon.h fe_448.h fe_operations.h fips_test.h ge_448.h ge_operations.h hash.h hmac.h hpke.h include.am integer.h kdf.h libwolfssl_sources.h libwolfssl_sources_asm.h logging.h md2.h md4.h md5.h mem_track.h memory.h misc.h mpi_class.h mpi_superclass.h oid_sum.h pkcs11.h pkcs12.h pkcs7.h poly1305.h puf.h pwdbased.h random.h rc2.h ripemd.h rng_bank.h rsa.h sakke.h selftest.h settings.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h sm2.h sm3.h sm4.h sp.h sp_int.h srp.h tfm.h types.h visibility.h wc_encrypt.h wc_lms.h wc_mlkem.h wc_pkcs11.h wc_port.h wc_she.h wc_slhdsa.h wc_xmss.h wolfentropy.h wolfevent.h wolfmath.h
callbacks.h certs_test.h certs_test_sm.h crl.h error-ssl.h include.am internal.h ocsp.h options.h.in quic.h sniffer.h sniffer_error.h sniffer_error.rc ssl.h test.h version.h version.h.in wolfio.h
wrapper
Ada
examples
src aes_verify_main.adb rsa_verify_main.adb sha256_main.adb spark_sockets.adb spark_sockets.ads spark_terminal.adb spark_terminal.ads tls_client.adb tls_client.ads tls_client_main.adb tls_server.adb tls_server.ads tls_server_main.adb
.gitignore alire.toml examples.gpr
tests
src
support test_support.adb test_support.ads tests_root_suite.adb tests_root_suite.ads
aes_bindings_tests.adb aes_bindings_tests.ads rsa_verify_bindings_tests.adb rsa_verify_bindings_tests.ads sha256_bindings_tests.adb sha256_bindings_tests.ads tests.adb
.gitignore README.md alire.toml tests.gpr valgrind.supp
.gitignore README.md ada_binding.c alire.toml default.gpr include.am restricted.adc user_settings.h wolfssl-full_runtime.adb wolfssl-full_runtime.ads wolfssl.adb wolfssl.ads wolfssl.gpr
CSharp
wolfCrypt-Test
Properties AssemblyInfo.cs
App.config wolfCrypt-Test.cs wolfCrypt-Test.csproj
wolfSSL-DTLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-PSK-Server.cs wolfSSL-DTLS-PSK-Server.csproj
wolfSSL-DTLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-Server.cs wolfSSL-DTLS-Server.csproj
wolfSSL-Example-IOCallbacks
Properties AssemblyInfo.cs
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csproj
wolfSSL-TLS-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Client.cs wolfSSL-TLS-Client.csproj
wolfSSL-TLS-PSK-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Client.cs wolfSSL-TLS-PSK-Client.csproj
wolfSSL-TLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Server.cs wolfSSL-TLS-PSK-Server.csproj
wolfSSL-TLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Server.cs wolfSSL-TLS-Server.csproj
wolfSSL-TLS-ServerThreaded
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csproj
wolfSSL_CSharp
Properties AssemblyInfo.cs Resources.Designer.cs Resources.resx
X509.cs wolfCrypt.cs wolfSSL.cs wolfSSL_CSharp.csproj
README.md include.am user_settings.h wolfSSL_CSharp.sln wolfssl.vcxproj
python README.md
rust
wolfssl-wolfcrypt
src aes.rs blake2.rs chacha20_poly1305.rs cmac.rs cmac_mac.rs curve25519.rs dh.rs dilithium.rs ecc.rs ecdsa.rs ed25519.rs ed448.rs fips.rs hkdf.rs hmac.rs hmac_mac.rs kdf.rs lib.rs lms.rs mlkem.rs mlkem_kem.rs pbkdf2_password_hash.rs prf.rs random.rs rsa.rs rsa_pkcs1v15.rs sha.rs sha_digest.rs sys.rs
tests
common mod.rs
test_aes.rs test_blake2.rs test_chacha20_poly1305.rs test_cmac.rs test_cmac_mac.rs test_curve25519.rs test_dh.rs test_dilithium.rs test_ecc.rs test_ecdsa.rs test_ed25519.rs test_ed448.rs test_hkdf.rs test_hmac.rs test_hmac_mac.rs test_kdf.rs test_lms.rs test_mlkem.rs test_mlkem_kem.rs test_pbkdf2_password_hash.rs test_prf.rs test_random.rs test_rsa.rs test_rsa_pkcs1v15.rs test_sha.rs test_sha_digest.rs test_wolfcrypt.rs
CHANGELOG.md Cargo.lock Cargo.toml Makefile README.md build.rs headers.h
Makefile README.md include.am
include.am
zephyr
samples
wolfssl_benchmark
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_test
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_sock
boards native_sim.conf
src tls_sock.c
CMakeLists.txt README install_sample.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_thread
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
src tls_threaded.c
CMakeLists.txt README install_sample.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl options.h
CMakeLists.txt Kconfig Kconfig.tls-generic README.md include.am module.yml user_settings-no-malloc.h user_settings.h zephyr_init.c
.codespellexcludelines .cyignore .editorconfig .gitignore .wolfssl_known_macro_extras AUTHORS CMakeLists.txt CMakePresets.json CMakeSettings.json COPYING ChangeLog.md INSTALL LICENSING LPCExpresso.cproject LPCExpresso.project Makefile.am README README-async.md README.md SCRIPTS-LIST SECURITY-POLICY.md SECURITY-REPORT-TEMPLATE.md Vagrantfile autogen.sh commit-tests.sh configure.ac fips-check.sh fips-hash.sh gencertbuf.pl input pull_to_vagrant.sh quit resource.h stamp-h.in valgrind-bash.supp valgrind-error.sh wnr-example.conf wolfssl-VS2022.vcxproj wolfssl.rc wolfssl.vcproj wolfssl.vcxproj wolfssl64.sln
.clangd .gitignore DOCS.md Makefile README.md assert.c core.c crypto.c env.c fs.c http.c ini.c json.c log.c luna.h main.c makext.mk path.c process.c request.c sqlite.c stash.c template.c util.c
wolfssl/wolfcrypt/src/aes_xts_asm.asm raw
   1; /* aes_xts_asm.asm */
   2; /*
   3;  * Copyright (C) 2006-2026 wolfSSL Inc.
   4;  *
   5;  * This file is part of wolfSSL.
   6;  *
   7;  * wolfSSL is free software; you can redistribute it and/or modify
   8;  * it under the terms of the GNU General Public License as published by
   9;  * the Free Software Foundation; either version 3 of the License, or
  10;  * (at your option) any later version.
  11;  *
  12;  * wolfSSL is distributed in the hope that it will be useful,
  13;  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14;  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15;  * GNU General Public License for more details.
  16;  *
  17;  * You should have received a copy of the GNU General Public License
  18;  * along with this program; if not, write to the Free Software
  19;  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
  20;  */
  21
  22IF @Version LT 1200
  23; AVX2 instructions not recognized by old versions of MASM
  24IFNDEF NO_AVX2_SUPPORT
  25NO_AVX2_SUPPORT = 1
  26ENDIF
  27; MOVBE instruction not recognized by old versions of MASM
  28IFNDEF NO_MOVBE_SUPPORT
  29NO_MOVBE_SUPPORT = 1
  30ENDIF
  31ENDIF
  32
  33IFNDEF HAVE_INTEL_AVX1
  34HAVE_INTEL_AVX1 = 1
  35ENDIF
  36IFNDEF NO_AVX2_SUPPORT
  37HAVE_INTEL_AVX2 = 1
  38ENDIF
  39
  40IFNDEF _WIN64
  41_WIN64 = 1
  42ENDIF
  43
  44_TEXT SEGMENT READONLY PARA
  45AES_XTS_init_aesni PROC
  46        movdqu	xmm0, OWORD PTR [rcx]
  47        ; aes_enc_block
  48        pxor	xmm0, [rdx]
  49        movdqu	xmm2, OWORD PTR [rdx+16]
  50        aesenc	xmm0, xmm2
  51        movdqu	xmm2, OWORD PTR [rdx+32]
  52        aesenc	xmm0, xmm2
  53        movdqu	xmm2, OWORD PTR [rdx+48]
  54        aesenc	xmm0, xmm2
  55        movdqu	xmm2, OWORD PTR [rdx+64]
  56        aesenc	xmm0, xmm2
  57        movdqu	xmm2, OWORD PTR [rdx+80]
  58        aesenc	xmm0, xmm2
  59        movdqu	xmm2, OWORD PTR [rdx+96]
  60        aesenc	xmm0, xmm2
  61        movdqu	xmm2, OWORD PTR [rdx+112]
  62        aesenc	xmm0, xmm2
  63        movdqu	xmm2, OWORD PTR [rdx+128]
  64        aesenc	xmm0, xmm2
  65        movdqu	xmm2, OWORD PTR [rdx+144]
  66        aesenc	xmm0, xmm2
  67        cmp	r8d, 11
  68        movdqu	xmm2, OWORD PTR [rdx+160]
  69        jl	L_AES_XTS_init_aesni_tweak_aes_enc_block_last
  70        aesenc	xmm0, xmm2
  71        movdqu	xmm3, OWORD PTR [rdx+176]
  72        aesenc	xmm0, xmm3
  73        cmp	r8d, 13
  74        movdqu	xmm2, OWORD PTR [rdx+192]
  75        jl	L_AES_XTS_init_aesni_tweak_aes_enc_block_last
  76        aesenc	xmm0, xmm2
  77        movdqu	xmm3, OWORD PTR [rdx+208]
  78        aesenc	xmm0, xmm3
  79        movdqu	xmm2, OWORD PTR [rdx+224]
  80L_AES_XTS_init_aesni_tweak_aes_enc_block_last:
  81        aesenclast	xmm0, xmm2
  82        movdqu	OWORD PTR [rcx], xmm0
  83        ret
  84AES_XTS_init_aesni ENDP
  85_TEXT ENDS
  86_DATA SEGMENT
  87ALIGN 16
  88L_aes_xts_gc_xts DWORD \
  89     00000087h,  00000001h,  00000001h,  00000001h
  90ptr_L_aes_xts_gc_xts QWORD L_aes_xts_gc_xts
  91_DATA ENDS
  92_TEXT SEGMENT READONLY PARA
  93AES_XTS_encrypt_aesni PROC
  94        push	rdi
  95        push	rsi
  96        push	r12
  97        push	r13
  98        mov	rdi, rcx
  99        mov	rsi, rdx
 100        mov	rax, r8
 101        mov	r12, r9
 102        mov	r8, QWORD PTR [rsp+72]
 103        mov	r9, QWORD PTR [rsp+80]
 104        mov	r10d, DWORD PTR [rsp+88]
 105        sub	rsp, 176
 106        movdqu	OWORD PTR [rsp+64], xmm6
 107        movdqu	OWORD PTR [rsp+80], xmm7
 108        movdqu	OWORD PTR [rsp+96], xmm8
 109        movdqu	OWORD PTR [rsp+112], xmm9
 110        movdqu	OWORD PTR [rsp+128], xmm10
 111        movdqu	OWORD PTR [rsp+144], xmm11
 112        movdqu	OWORD PTR [rsp+160], xmm12
 113        movdqu	xmm12, OWORD PTR L_aes_xts_gc_xts
 114        movdqu	xmm0, OWORD PTR [r12]
 115        ; aes_enc_block
 116        pxor	xmm0, [r9]
 117        movdqu	xmm5, OWORD PTR [r9+16]
 118        aesenc	xmm0, xmm5
 119        movdqu	xmm5, OWORD PTR [r9+32]
 120        aesenc	xmm0, xmm5
 121        movdqu	xmm5, OWORD PTR [r9+48]
 122        aesenc	xmm0, xmm5
 123        movdqu	xmm5, OWORD PTR [r9+64]
 124        aesenc	xmm0, xmm5
 125        movdqu	xmm5, OWORD PTR [r9+80]
 126        aesenc	xmm0, xmm5
 127        movdqu	xmm5, OWORD PTR [r9+96]
 128        aesenc	xmm0, xmm5
 129        movdqu	xmm5, OWORD PTR [r9+112]
 130        aesenc	xmm0, xmm5
 131        movdqu	xmm5, OWORD PTR [r9+128]
 132        aesenc	xmm0, xmm5
 133        movdqu	xmm5, OWORD PTR [r9+144]
 134        aesenc	xmm0, xmm5
 135        cmp	r10d, 11
 136        movdqu	xmm5, OWORD PTR [r9+160]
 137        jl	L_AES_XTS_encrypt_aesni_tweak_aes_enc_block_last
 138        aesenc	xmm0, xmm5
 139        movdqu	xmm6, OWORD PTR [r9+176]
 140        aesenc	xmm0, xmm6
 141        cmp	r10d, 13
 142        movdqu	xmm5, OWORD PTR [r9+192]
 143        jl	L_AES_XTS_encrypt_aesni_tweak_aes_enc_block_last
 144        aesenc	xmm0, xmm5
 145        movdqu	xmm6, OWORD PTR [r9+208]
 146        aesenc	xmm0, xmm6
 147        movdqu	xmm5, OWORD PTR [r9+224]
 148L_AES_XTS_encrypt_aesni_tweak_aes_enc_block_last:
 149        aesenclast	xmm0, xmm5
 150        xor	r13d, r13d
 151        cmp	eax, 64
 152        mov	r11d, eax
 153        jl	L_AES_XTS_encrypt_aesni_done_64
 154        and	r11d, 4294967232
 155L_AES_XTS_encrypt_aesni_enc_64:
 156        ; 64 bytes of input
 157        ; aes_enc_64
 158        lea	rcx, QWORD PTR [rdi+r13]
 159        lea	rdx, QWORD PTR [rsi+r13]
 160        movdqu	xmm8, OWORD PTR [rcx]
 161        movdqu	xmm9, OWORD PTR [rcx+16]
 162        movdqu	xmm10, OWORD PTR [rcx+32]
 163        movdqu	xmm11, OWORD PTR [rcx+48]
 164        movdqa	xmm4, xmm0
 165        movdqa	xmm1, xmm0
 166        psrad	xmm4, 31
 167        pslld	xmm1, 1
 168        pshufd	xmm4, xmm4, 147
 169        pand	xmm4, xmm12
 170        pxor	xmm1, xmm4
 171        movdqa	xmm4, xmm1
 172        movdqa	xmm2, xmm1
 173        psrad	xmm4, 31
 174        pslld	xmm2, 1
 175        pshufd	xmm4, xmm4, 147
 176        pand	xmm4, xmm12
 177        pxor	xmm2, xmm4
 178        movdqa	xmm4, xmm2
 179        movdqa	xmm3, xmm2
 180        psrad	xmm4, 31
 181        pslld	xmm3, 1
 182        pshufd	xmm4, xmm4, 147
 183        pand	xmm4, xmm12
 184        pxor	xmm3, xmm4
 185        pxor	xmm8, xmm0
 186        pxor	xmm9, xmm1
 187        pxor	xmm10, xmm2
 188        pxor	xmm11, xmm3
 189        ; aes_enc_block
 190        movdqu	xmm4, OWORD PTR [r8]
 191        pxor	xmm8, xmm4
 192        pxor	xmm9, xmm4
 193        pxor	xmm10, xmm4
 194        pxor	xmm11, xmm4
 195        movdqu	xmm4, OWORD PTR [r8+16]
 196        aesenc	xmm8, xmm4
 197        aesenc	xmm9, xmm4
 198        aesenc	xmm10, xmm4
 199        aesenc	xmm11, xmm4
 200        movdqu	xmm4, OWORD PTR [r8+32]
 201        aesenc	xmm8, xmm4
 202        aesenc	xmm9, xmm4
 203        aesenc	xmm10, xmm4
 204        aesenc	xmm11, xmm4
 205        movdqu	xmm4, OWORD PTR [r8+48]
 206        aesenc	xmm8, xmm4
 207        aesenc	xmm9, xmm4
 208        aesenc	xmm10, xmm4
 209        aesenc	xmm11, xmm4
 210        movdqu	xmm4, OWORD PTR [r8+64]
 211        aesenc	xmm8, xmm4
 212        aesenc	xmm9, xmm4
 213        aesenc	xmm10, xmm4
 214        aesenc	xmm11, xmm4
 215        movdqu	xmm4, OWORD PTR [r8+80]
 216        aesenc	xmm8, xmm4
 217        aesenc	xmm9, xmm4
 218        aesenc	xmm10, xmm4
 219        aesenc	xmm11, xmm4
 220        movdqu	xmm4, OWORD PTR [r8+96]
 221        aesenc	xmm8, xmm4
 222        aesenc	xmm9, xmm4
 223        aesenc	xmm10, xmm4
 224        aesenc	xmm11, xmm4
 225        movdqu	xmm4, OWORD PTR [r8+112]
 226        aesenc	xmm8, xmm4
 227        aesenc	xmm9, xmm4
 228        aesenc	xmm10, xmm4
 229        aesenc	xmm11, xmm4
 230        movdqu	xmm4, OWORD PTR [r8+128]
 231        aesenc	xmm8, xmm4
 232        aesenc	xmm9, xmm4
 233        aesenc	xmm10, xmm4
 234        aesenc	xmm11, xmm4
 235        movdqu	xmm4, OWORD PTR [r8+144]
 236        aesenc	xmm8, xmm4
 237        aesenc	xmm9, xmm4
 238        aesenc	xmm10, xmm4
 239        aesenc	xmm11, xmm4
 240        cmp	r10d, 11
 241        movdqu	xmm4, OWORD PTR [r8+160]
 242        jl	L_AES_XTS_encrypt_aesni_aes_enc_64_aes_enc_block_last
 243        aesenc	xmm8, xmm4
 244        aesenc	xmm9, xmm4
 245        aesenc	xmm10, xmm4
 246        aesenc	xmm11, xmm4
 247        movdqu	xmm4, OWORD PTR [r8+176]
 248        aesenc	xmm8, xmm4
 249        aesenc	xmm9, xmm4
 250        aesenc	xmm10, xmm4
 251        aesenc	xmm11, xmm4
 252        cmp	r10d, 13
 253        movdqu	xmm4, OWORD PTR [r8+192]
 254        jl	L_AES_XTS_encrypt_aesni_aes_enc_64_aes_enc_block_last
 255        aesenc	xmm8, xmm4
 256        aesenc	xmm9, xmm4
 257        aesenc	xmm10, xmm4
 258        aesenc	xmm11, xmm4
 259        movdqu	xmm4, OWORD PTR [r8+208]
 260        aesenc	xmm8, xmm4
 261        aesenc	xmm9, xmm4
 262        aesenc	xmm10, xmm4
 263        aesenc	xmm11, xmm4
 264        movdqu	xmm4, OWORD PTR [r8+224]
 265L_AES_XTS_encrypt_aesni_aes_enc_64_aes_enc_block_last:
 266        aesenclast	xmm8, xmm4
 267        aesenclast	xmm9, xmm4
 268        aesenclast	xmm10, xmm4
 269        aesenclast	xmm11, xmm4
 270        pxor	xmm8, xmm0
 271        pxor	xmm9, xmm1
 272        pxor	xmm10, xmm2
 273        pxor	xmm11, xmm3
 274        movdqu	OWORD PTR [rdx], xmm8
 275        movdqu	OWORD PTR [rdx+16], xmm9
 276        movdqu	OWORD PTR [rdx+32], xmm10
 277        movdqu	OWORD PTR [rdx+48], xmm11
 278        movdqa	xmm4, xmm3
 279        movdqa	xmm0, xmm3
 280        psrad	xmm4, 31
 281        pslld	xmm0, 1
 282        pshufd	xmm4, xmm4, 147
 283        pand	xmm4, xmm12
 284        pxor	xmm0, xmm4
 285        add	r13d, 64
 286        cmp	r13d, r11d
 287        jl	L_AES_XTS_encrypt_aesni_enc_64
 288L_AES_XTS_encrypt_aesni_done_64:
 289        cmp	r13d, eax
 290        mov	r11d, eax
 291        je	L_AES_XTS_encrypt_aesni_done_enc
 292        sub	r11d, r13d
 293        cmp	r11d, 16
 294        mov	r11d, eax
 295        jl	L_AES_XTS_encrypt_aesni_last_15
 296        and	r11d, 4294967280
 297        ; 16 bytes of input
 298L_AES_XTS_encrypt_aesni_enc_16:
 299        lea	rcx, QWORD PTR [rdi+r13]
 300        movdqu	xmm8, OWORD PTR [rcx]
 301        pxor	xmm8, xmm0
 302        ; aes_enc_block
 303        pxor	xmm8, [r8]
 304        movdqu	xmm5, OWORD PTR [r8+16]
 305        aesenc	xmm8, xmm5
 306        movdqu	xmm5, OWORD PTR [r8+32]
 307        aesenc	xmm8, xmm5
 308        movdqu	xmm5, OWORD PTR [r8+48]
 309        aesenc	xmm8, xmm5
 310        movdqu	xmm5, OWORD PTR [r8+64]
 311        aesenc	xmm8, xmm5
 312        movdqu	xmm5, OWORD PTR [r8+80]
 313        aesenc	xmm8, xmm5
 314        movdqu	xmm5, OWORD PTR [r8+96]
 315        aesenc	xmm8, xmm5
 316        movdqu	xmm5, OWORD PTR [r8+112]
 317        aesenc	xmm8, xmm5
 318        movdqu	xmm5, OWORD PTR [r8+128]
 319        aesenc	xmm8, xmm5
 320        movdqu	xmm5, OWORD PTR [r8+144]
 321        aesenc	xmm8, xmm5
 322        cmp	r10d, 11
 323        movdqu	xmm5, OWORD PTR [r8+160]
 324        jl	L_AES_XTS_encrypt_aesni_aes_enc_block_last
 325        aesenc	xmm8, xmm5
 326        movdqu	xmm6, OWORD PTR [r8+176]
 327        aesenc	xmm8, xmm6
 328        cmp	r10d, 13
 329        movdqu	xmm5, OWORD PTR [r8+192]
 330        jl	L_AES_XTS_encrypt_aesni_aes_enc_block_last
 331        aesenc	xmm8, xmm5
 332        movdqu	xmm6, OWORD PTR [r8+208]
 333        aesenc	xmm8, xmm6
 334        movdqu	xmm5, OWORD PTR [r8+224]
 335L_AES_XTS_encrypt_aesni_aes_enc_block_last:
 336        aesenclast	xmm8, xmm5
 337        pxor	xmm8, xmm0
 338        lea	rcx, QWORD PTR [rsi+r13]
 339        movdqu	OWORD PTR [rcx], xmm8
 340        movdqa	xmm4, xmm0
 341        psrad	xmm4, 31
 342        pslld	xmm0, 1
 343        pshufd	xmm4, xmm4, 147
 344        pand	xmm4, xmm12
 345        pxor	xmm0, xmm4
 346        add	r13d, 16
 347        cmp	r13d, r11d
 348        jl	L_AES_XTS_encrypt_aesni_enc_16
 349        cmp	r13d, eax
 350        je	L_AES_XTS_encrypt_aesni_done_enc
 351L_AES_XTS_encrypt_aesni_last_15:
 352        sub	r13, 16
 353        lea	rcx, QWORD PTR [rsi+r13]
 354        movdqu	xmm8, OWORD PTR [rcx]
 355        add	r13, 16
 356        movdqu	OWORD PTR [rsp], xmm8
 357        xor	rdx, rdx
 358L_AES_XTS_encrypt_aesni_last_15_byte_loop:
 359        mov	r11b, BYTE PTR [rsp+rdx]
 360        mov	cl, BYTE PTR [rdi+r13]
 361        mov	BYTE PTR [rsi+r13], r11b
 362        mov	BYTE PTR [rsp+rdx], cl
 363        inc	r13d
 364        inc	edx
 365        cmp	r13d, eax
 366        jl	L_AES_XTS_encrypt_aesni_last_15_byte_loop
 367        sub	r13, rdx
 368        movdqu	xmm8, OWORD PTR [rsp]
 369        sub	r13, 16
 370        pxor	xmm8, xmm0
 371        ; aes_enc_block
 372        pxor	xmm8, [r8]
 373        movdqu	xmm5, OWORD PTR [r8+16]
 374        aesenc	xmm8, xmm5
 375        movdqu	xmm5, OWORD PTR [r8+32]
 376        aesenc	xmm8, xmm5
 377        movdqu	xmm5, OWORD PTR [r8+48]
 378        aesenc	xmm8, xmm5
 379        movdqu	xmm5, OWORD PTR [r8+64]
 380        aesenc	xmm8, xmm5
 381        movdqu	xmm5, OWORD PTR [r8+80]
 382        aesenc	xmm8, xmm5
 383        movdqu	xmm5, OWORD PTR [r8+96]
 384        aesenc	xmm8, xmm5
 385        movdqu	xmm5, OWORD PTR [r8+112]
 386        aesenc	xmm8, xmm5
 387        movdqu	xmm5, OWORD PTR [r8+128]
 388        aesenc	xmm8, xmm5
 389        movdqu	xmm5, OWORD PTR [r8+144]
 390        aesenc	xmm8, xmm5
 391        cmp	r10d, 11
 392        movdqu	xmm5, OWORD PTR [r8+160]
 393        jl	L_AES_XTS_encrypt_aesni_last_15_aes_enc_block_last
 394        aesenc	xmm8, xmm5
 395        movdqu	xmm6, OWORD PTR [r8+176]
 396        aesenc	xmm8, xmm6
 397        cmp	r10d, 13
 398        movdqu	xmm5, OWORD PTR [r8+192]
 399        jl	L_AES_XTS_encrypt_aesni_last_15_aes_enc_block_last
 400        aesenc	xmm8, xmm5
 401        movdqu	xmm6, OWORD PTR [r8+208]
 402        aesenc	xmm8, xmm6
 403        movdqu	xmm5, OWORD PTR [r8+224]
 404L_AES_XTS_encrypt_aesni_last_15_aes_enc_block_last:
 405        aesenclast	xmm8, xmm5
 406        pxor	xmm8, xmm0
 407        lea	rcx, QWORD PTR [rsi+r13]
 408        movdqu	OWORD PTR [rcx], xmm8
 409L_AES_XTS_encrypt_aesni_done_enc:
 410        movdqu	xmm6, OWORD PTR [rsp+64]
 411        movdqu	xmm7, OWORD PTR [rsp+80]
 412        movdqu	xmm8, OWORD PTR [rsp+96]
 413        movdqu	xmm9, OWORD PTR [rsp+112]
 414        movdqu	xmm10, OWORD PTR [rsp+128]
 415        movdqu	xmm11, OWORD PTR [rsp+144]
 416        movdqu	xmm12, OWORD PTR [rsp+160]
 417        add	rsp, 176
 418        pop	r13
 419        pop	r12
 420        pop	rsi
 421        pop	rdi
 422        ret
 423AES_XTS_encrypt_aesni ENDP
 424_TEXT ENDS
 425_TEXT SEGMENT READONLY PARA
 426AES_XTS_encrypt_update_aesni PROC
 427        push	rdi
 428        push	rsi
 429        push	r12
 430        mov	rdi, rcx
 431        mov	rsi, rdx
 432        mov	rax, r8
 433        mov	r10, r9
 434        mov	r8, QWORD PTR [rsp+64]
 435        mov	r9d, DWORD PTR [rsp+72]
 436        sub	rsp, 176
 437        movdqu	OWORD PTR [rsp+64], xmm6
 438        movdqu	OWORD PTR [rsp+80], xmm7
 439        movdqu	OWORD PTR [rsp+96], xmm8
 440        movdqu	OWORD PTR [rsp+112], xmm9
 441        movdqu	OWORD PTR [rsp+128], xmm10
 442        movdqu	OWORD PTR [rsp+144], xmm11
 443        movdqu	OWORD PTR [rsp+160], xmm12
 444        movdqu	xmm12, OWORD PTR L_aes_xts_gc_xts
 445        movdqu	xmm0, OWORD PTR [r8]
 446        xor	r12d, r12d
 447        cmp	eax, 64
 448        mov	r11d, eax
 449        jl	L_AES_XTS_encrypt_update_aesni_done_64
 450        and	r11d, 4294967232
 451L_AES_XTS_encrypt_update_aesni_enc_64:
 452        ; 64 bytes of input
 453        ; aes_enc_64
 454        lea	rcx, QWORD PTR [rdi+r12]
 455        lea	rdx, QWORD PTR [rsi+r12]
 456        movdqu	xmm8, OWORD PTR [rcx]
 457        movdqu	xmm9, OWORD PTR [rcx+16]
 458        movdqu	xmm10, OWORD PTR [rcx+32]
 459        movdqu	xmm11, OWORD PTR [rcx+48]
 460        movdqa	xmm4, xmm0
 461        movdqa	xmm1, xmm0
 462        psrad	xmm4, 31
 463        pslld	xmm1, 1
 464        pshufd	xmm4, xmm4, 147
 465        pand	xmm4, xmm12
 466        pxor	xmm1, xmm4
 467        movdqa	xmm4, xmm1
 468        movdqa	xmm2, xmm1
 469        psrad	xmm4, 31
 470        pslld	xmm2, 1
 471        pshufd	xmm4, xmm4, 147
 472        pand	xmm4, xmm12
 473        pxor	xmm2, xmm4
 474        movdqa	xmm4, xmm2
 475        movdqa	xmm3, xmm2
 476        psrad	xmm4, 31
 477        pslld	xmm3, 1
 478        pshufd	xmm4, xmm4, 147
 479        pand	xmm4, xmm12
 480        pxor	xmm3, xmm4
 481        pxor	xmm8, xmm0
 482        pxor	xmm9, xmm1
 483        pxor	xmm10, xmm2
 484        pxor	xmm11, xmm3
 485        ; aes_enc_block
 486        movdqu	xmm4, OWORD PTR [r10]
 487        pxor	xmm8, xmm4
 488        pxor	xmm9, xmm4
 489        pxor	xmm10, xmm4
 490        pxor	xmm11, xmm4
 491        movdqu	xmm4, OWORD PTR [r10+16]
 492        aesenc	xmm8, xmm4
 493        aesenc	xmm9, xmm4
 494        aesenc	xmm10, xmm4
 495        aesenc	xmm11, xmm4
 496        movdqu	xmm4, OWORD PTR [r10+32]
 497        aesenc	xmm8, xmm4
 498        aesenc	xmm9, xmm4
 499        aesenc	xmm10, xmm4
 500        aesenc	xmm11, xmm4
 501        movdqu	xmm4, OWORD PTR [r10+48]
 502        aesenc	xmm8, xmm4
 503        aesenc	xmm9, xmm4
 504        aesenc	xmm10, xmm4
 505        aesenc	xmm11, xmm4
 506        movdqu	xmm4, OWORD PTR [r10+64]
 507        aesenc	xmm8, xmm4
 508        aesenc	xmm9, xmm4
 509        aesenc	xmm10, xmm4
 510        aesenc	xmm11, xmm4
 511        movdqu	xmm4, OWORD PTR [r10+80]
 512        aesenc	xmm8, xmm4
 513        aesenc	xmm9, xmm4
 514        aesenc	xmm10, xmm4
 515        aesenc	xmm11, xmm4
 516        movdqu	xmm4, OWORD PTR [r10+96]
 517        aesenc	xmm8, xmm4
 518        aesenc	xmm9, xmm4
 519        aesenc	xmm10, xmm4
 520        aesenc	xmm11, xmm4
 521        movdqu	xmm4, OWORD PTR [r10+112]
 522        aesenc	xmm8, xmm4
 523        aesenc	xmm9, xmm4
 524        aesenc	xmm10, xmm4
 525        aesenc	xmm11, xmm4
 526        movdqu	xmm4, OWORD PTR [r10+128]
 527        aesenc	xmm8, xmm4
 528        aesenc	xmm9, xmm4
 529        aesenc	xmm10, xmm4
 530        aesenc	xmm11, xmm4
 531        movdqu	xmm4, OWORD PTR [r10+144]
 532        aesenc	xmm8, xmm4
 533        aesenc	xmm9, xmm4
 534        aesenc	xmm10, xmm4
 535        aesenc	xmm11, xmm4
 536        cmp	r9d, 11
 537        movdqu	xmm4, OWORD PTR [r10+160]
 538        jl	L_AES_XTS_encrypt_update_aesni_aes_enc_64_aes_enc_block_last
 539        aesenc	xmm8, xmm4
 540        aesenc	xmm9, xmm4
 541        aesenc	xmm10, xmm4
 542        aesenc	xmm11, xmm4
 543        movdqu	xmm4, OWORD PTR [r10+176]
 544        aesenc	xmm8, xmm4
 545        aesenc	xmm9, xmm4
 546        aesenc	xmm10, xmm4
 547        aesenc	xmm11, xmm4
 548        cmp	r9d, 13
 549        movdqu	xmm4, OWORD PTR [r10+192]
 550        jl	L_AES_XTS_encrypt_update_aesni_aes_enc_64_aes_enc_block_last
 551        aesenc	xmm8, xmm4
 552        aesenc	xmm9, xmm4
 553        aesenc	xmm10, xmm4
 554        aesenc	xmm11, xmm4
 555        movdqu	xmm4, OWORD PTR [r10+208]
 556        aesenc	xmm8, xmm4
 557        aesenc	xmm9, xmm4
 558        aesenc	xmm10, xmm4
 559        aesenc	xmm11, xmm4
 560        movdqu	xmm4, OWORD PTR [r10+224]
 561L_AES_XTS_encrypt_update_aesni_aes_enc_64_aes_enc_block_last:
 562        aesenclast	xmm8, xmm4
 563        aesenclast	xmm9, xmm4
 564        aesenclast	xmm10, xmm4
 565        aesenclast	xmm11, xmm4
 566        pxor	xmm8, xmm0
 567        pxor	xmm9, xmm1
 568        pxor	xmm10, xmm2
 569        pxor	xmm11, xmm3
 570        movdqu	OWORD PTR [rdx], xmm8
 571        movdqu	OWORD PTR [rdx+16], xmm9
 572        movdqu	OWORD PTR [rdx+32], xmm10
 573        movdqu	OWORD PTR [rdx+48], xmm11
 574        movdqa	xmm4, xmm3
 575        movdqa	xmm0, xmm3
 576        psrad	xmm4, 31
 577        pslld	xmm0, 1
 578        pshufd	xmm4, xmm4, 147
 579        pand	xmm4, xmm12
 580        pxor	xmm0, xmm4
 581        add	r12d, 64
 582        cmp	r12d, r11d
 583        jl	L_AES_XTS_encrypt_update_aesni_enc_64
 584L_AES_XTS_encrypt_update_aesni_done_64:
 585        cmp	r12d, eax
 586        mov	r11d, eax
 587        je	L_AES_XTS_encrypt_update_aesni_done_enc
 588        sub	r11d, r12d
 589        cmp	r11d, 16
 590        mov	r11d, eax
 591        jl	L_AES_XTS_encrypt_update_aesni_last_15
 592        and	r11d, 4294967280
 593        ; 16 bytes of input
 594L_AES_XTS_encrypt_update_aesni_enc_16:
 595        lea	rcx, QWORD PTR [rdi+r12]
 596        movdqu	xmm8, OWORD PTR [rcx]
 597        pxor	xmm8, xmm0
 598        ; aes_enc_block
 599        pxor	xmm8, [r10]
 600        movdqu	xmm5, OWORD PTR [r10+16]
 601        aesenc	xmm8, xmm5
 602        movdqu	xmm5, OWORD PTR [r10+32]
 603        aesenc	xmm8, xmm5
 604        movdqu	xmm5, OWORD PTR [r10+48]
 605        aesenc	xmm8, xmm5
 606        movdqu	xmm5, OWORD PTR [r10+64]
 607        aesenc	xmm8, xmm5
 608        movdqu	xmm5, OWORD PTR [r10+80]
 609        aesenc	xmm8, xmm5
 610        movdqu	xmm5, OWORD PTR [r10+96]
 611        aesenc	xmm8, xmm5
 612        movdqu	xmm5, OWORD PTR [r10+112]
 613        aesenc	xmm8, xmm5
 614        movdqu	xmm5, OWORD PTR [r10+128]
 615        aesenc	xmm8, xmm5
 616        movdqu	xmm5, OWORD PTR [r10+144]
 617        aesenc	xmm8, xmm5
 618        cmp	r9d, 11
 619        movdqu	xmm5, OWORD PTR [r10+160]
 620        jl	L_AES_XTS_encrypt_update_aesni_aes_enc_block_last
 621        aesenc	xmm8, xmm5
 622        movdqu	xmm6, OWORD PTR [r10+176]
 623        aesenc	xmm8, xmm6
 624        cmp	r9d, 13
 625        movdqu	xmm5, OWORD PTR [r10+192]
 626        jl	L_AES_XTS_encrypt_update_aesni_aes_enc_block_last
 627        aesenc	xmm8, xmm5
 628        movdqu	xmm6, OWORD PTR [r10+208]
 629        aesenc	xmm8, xmm6
 630        movdqu	xmm5, OWORD PTR [r10+224]
 631L_AES_XTS_encrypt_update_aesni_aes_enc_block_last:
 632        aesenclast	xmm8, xmm5
 633        pxor	xmm8, xmm0
 634        lea	rcx, QWORD PTR [rsi+r12]
 635        movdqu	OWORD PTR [rcx], xmm8
 636        movdqa	xmm4, xmm0
 637        psrad	xmm4, 31
 638        pslld	xmm0, 1
 639        pshufd	xmm4, xmm4, 147
 640        pand	xmm4, xmm12
 641        pxor	xmm0, xmm4
 642        add	r12d, 16
 643        cmp	r12d, r11d
 644        jl	L_AES_XTS_encrypt_update_aesni_enc_16
 645        cmp	r12d, eax
 646        je	L_AES_XTS_encrypt_update_aesni_done_enc
 647L_AES_XTS_encrypt_update_aesni_last_15:
 648        sub	r12, 16
 649        lea	rcx, QWORD PTR [rsi+r12]
 650        movdqu	xmm8, OWORD PTR [rcx]
 651        add	r12, 16
 652        movdqu	OWORD PTR [rsp], xmm8
 653        xor	rdx, rdx
 654L_AES_XTS_encrypt_update_aesni_last_15_byte_loop:
 655        mov	r11b, BYTE PTR [rsp+rdx]
 656        mov	cl, BYTE PTR [rdi+r12]
 657        mov	BYTE PTR [rsi+r12], r11b
 658        mov	BYTE PTR [rsp+rdx], cl
 659        inc	r12d
 660        inc	edx
 661        cmp	r12d, eax
 662        jl	L_AES_XTS_encrypt_update_aesni_last_15_byte_loop
 663        sub	r12, rdx
 664        movdqu	xmm8, OWORD PTR [rsp]
 665        sub	r12, 16
 666        pxor	xmm8, xmm0
 667        ; aes_enc_block
 668        pxor	xmm8, [r10]
 669        movdqu	xmm5, OWORD PTR [r10+16]
 670        aesenc	xmm8, xmm5
 671        movdqu	xmm5, OWORD PTR [r10+32]
 672        aesenc	xmm8, xmm5
 673        movdqu	xmm5, OWORD PTR [r10+48]
 674        aesenc	xmm8, xmm5
 675        movdqu	xmm5, OWORD PTR [r10+64]
 676        aesenc	xmm8, xmm5
 677        movdqu	xmm5, OWORD PTR [r10+80]
 678        aesenc	xmm8, xmm5
 679        movdqu	xmm5, OWORD PTR [r10+96]
 680        aesenc	xmm8, xmm5
 681        movdqu	xmm5, OWORD PTR [r10+112]
 682        aesenc	xmm8, xmm5
 683        movdqu	xmm5, OWORD PTR [r10+128]
 684        aesenc	xmm8, xmm5
 685        movdqu	xmm5, OWORD PTR [r10+144]
 686        aesenc	xmm8, xmm5
 687        cmp	r9d, 11
 688        movdqu	xmm5, OWORD PTR [r10+160]
 689        jl	L_AES_XTS_encrypt_update_aesni_last_15_aes_enc_block_last
 690        aesenc	xmm8, xmm5
 691        movdqu	xmm6, OWORD PTR [r10+176]
 692        aesenc	xmm8, xmm6
 693        cmp	r9d, 13
 694        movdqu	xmm5, OWORD PTR [r10+192]
 695        jl	L_AES_XTS_encrypt_update_aesni_last_15_aes_enc_block_last
 696        aesenc	xmm8, xmm5
 697        movdqu	xmm6, OWORD PTR [r10+208]
 698        aesenc	xmm8, xmm6
 699        movdqu	xmm5, OWORD PTR [r10+224]
 700L_AES_XTS_encrypt_update_aesni_last_15_aes_enc_block_last:
 701        aesenclast	xmm8, xmm5
 702        pxor	xmm8, xmm0
 703        lea	rcx, QWORD PTR [rsi+r12]
 704        movdqu	OWORD PTR [rcx], xmm8
 705L_AES_XTS_encrypt_update_aesni_done_enc:
 706        movdqu	OWORD PTR [r8], xmm0
 707        movdqu	xmm6, OWORD PTR [rsp+64]
 708        movdqu	xmm7, OWORD PTR [rsp+80]
 709        movdqu	xmm8, OWORD PTR [rsp+96]
 710        movdqu	xmm9, OWORD PTR [rsp+112]
 711        movdqu	xmm10, OWORD PTR [rsp+128]
 712        movdqu	xmm11, OWORD PTR [rsp+144]
 713        movdqu	xmm12, OWORD PTR [rsp+160]
 714        add	rsp, 176
 715        pop	r12
 716        pop	rsi
 717        pop	rdi
 718        ret
 719AES_XTS_encrypt_update_aesni ENDP
 720_TEXT ENDS
 721_TEXT SEGMENT READONLY PARA
 722AES_XTS_decrypt_aesni PROC
 723        push	rdi
 724        push	rsi
 725        push	r12
 726        push	r13
 727        mov	rdi, rcx
 728        mov	rsi, rdx
 729        mov	rax, r8
 730        mov	r12, r9
 731        mov	r8, QWORD PTR [rsp+72]
 732        mov	r9, QWORD PTR [rsp+80]
 733        mov	r10d, DWORD PTR [rsp+88]
 734        sub	rsp, 128
 735        movdqu	OWORD PTR [rsp+16], xmm6
 736        movdqu	OWORD PTR [rsp+32], xmm7
 737        movdqu	OWORD PTR [rsp+48], xmm8
 738        movdqu	OWORD PTR [rsp+64], xmm9
 739        movdqu	OWORD PTR [rsp+80], xmm10
 740        movdqu	OWORD PTR [rsp+96], xmm11
 741        movdqu	OWORD PTR [rsp+112], xmm12
 742        movdqu	xmm12, OWORD PTR L_aes_xts_gc_xts
 743        movdqu	xmm0, OWORD PTR [r12]
 744        ; aes_enc_block
 745        pxor	xmm0, [r9]
 746        movdqu	xmm5, OWORD PTR [r9+16]
 747        aesenc	xmm0, xmm5
 748        movdqu	xmm5, OWORD PTR [r9+32]
 749        aesenc	xmm0, xmm5
 750        movdqu	xmm5, OWORD PTR [r9+48]
 751        aesenc	xmm0, xmm5
 752        movdqu	xmm5, OWORD PTR [r9+64]
 753        aesenc	xmm0, xmm5
 754        movdqu	xmm5, OWORD PTR [r9+80]
 755        aesenc	xmm0, xmm5
 756        movdqu	xmm5, OWORD PTR [r9+96]
 757        aesenc	xmm0, xmm5
 758        movdqu	xmm5, OWORD PTR [r9+112]
 759        aesenc	xmm0, xmm5
 760        movdqu	xmm5, OWORD PTR [r9+128]
 761        aesenc	xmm0, xmm5
 762        movdqu	xmm5, OWORD PTR [r9+144]
 763        aesenc	xmm0, xmm5
 764        cmp	r10d, 11
 765        movdqu	xmm5, OWORD PTR [r9+160]
 766        jl	L_AES_XTS_decrypt_aesni_tweak_aes_enc_block_last
 767        aesenc	xmm0, xmm5
 768        movdqu	xmm6, OWORD PTR [r9+176]
 769        aesenc	xmm0, xmm6
 770        cmp	r10d, 13
 771        movdqu	xmm5, OWORD PTR [r9+192]
 772        jl	L_AES_XTS_decrypt_aesni_tweak_aes_enc_block_last
 773        aesenc	xmm0, xmm5
 774        movdqu	xmm6, OWORD PTR [r9+208]
 775        aesenc	xmm0, xmm6
 776        movdqu	xmm5, OWORD PTR [r9+224]
 777L_AES_XTS_decrypt_aesni_tweak_aes_enc_block_last:
 778        aesenclast	xmm0, xmm5
 779        xor	r13d, r13d
 780        mov	r11d, eax
 781        and	r11d, 4294967280
 782        cmp	r11d, eax
 783        je	L_AES_XTS_decrypt_aesni_mul16_64
 784        sub	r11d, 16
 785        cmp	r11d, 16
 786        jl	L_AES_XTS_decrypt_aesni_last_31_start
 787L_AES_XTS_decrypt_aesni_mul16_64:
 788        cmp	r11d, 64
 789        jl	L_AES_XTS_decrypt_aesni_done_64
 790        and	r11d, 4294967232
 791L_AES_XTS_decrypt_aesni_dec_64:
 792        ; 64 bytes of input
 793        ; aes_dec_64
 794        lea	rcx, QWORD PTR [rdi+r13]
 795        lea	rdx, QWORD PTR [rsi+r13]
 796        movdqu	xmm8, OWORD PTR [rcx]
 797        movdqu	xmm9, OWORD PTR [rcx+16]
 798        movdqu	xmm10, OWORD PTR [rcx+32]
 799        movdqu	xmm11, OWORD PTR [rcx+48]
 800        movdqa	xmm4, xmm0
 801        movdqa	xmm1, xmm0
 802        psrad	xmm4, 31
 803        pslld	xmm1, 1
 804        pshufd	xmm4, xmm4, 147
 805        pand	xmm4, xmm12
 806        pxor	xmm1, xmm4
 807        movdqa	xmm4, xmm1
 808        movdqa	xmm2, xmm1
 809        psrad	xmm4, 31
 810        pslld	xmm2, 1
 811        pshufd	xmm4, xmm4, 147
 812        pand	xmm4, xmm12
 813        pxor	xmm2, xmm4
 814        movdqa	xmm4, xmm2
 815        movdqa	xmm3, xmm2
 816        psrad	xmm4, 31
 817        pslld	xmm3, 1
 818        pshufd	xmm4, xmm4, 147
 819        pand	xmm4, xmm12
 820        pxor	xmm3, xmm4
 821        pxor	xmm8, xmm0
 822        pxor	xmm9, xmm1
 823        pxor	xmm10, xmm2
 824        pxor	xmm11, xmm3
 825        ; aes_dec_block
 826        movdqu	xmm4, OWORD PTR [r8]
 827        pxor	xmm8, xmm4
 828        pxor	xmm9, xmm4
 829        pxor	xmm10, xmm4
 830        pxor	xmm11, xmm4
 831        movdqu	xmm4, OWORD PTR [r8+16]
 832        aesdec	xmm8, xmm4
 833        aesdec	xmm9, xmm4
 834        aesdec	xmm10, xmm4
 835        aesdec	xmm11, xmm4
 836        movdqu	xmm4, OWORD PTR [r8+32]
 837        aesdec	xmm8, xmm4
 838        aesdec	xmm9, xmm4
 839        aesdec	xmm10, xmm4
 840        aesdec	xmm11, xmm4
 841        movdqu	xmm4, OWORD PTR [r8+48]
 842        aesdec	xmm8, xmm4
 843        aesdec	xmm9, xmm4
 844        aesdec	xmm10, xmm4
 845        aesdec	xmm11, xmm4
 846        movdqu	xmm4, OWORD PTR [r8+64]
 847        aesdec	xmm8, xmm4
 848        aesdec	xmm9, xmm4
 849        aesdec	xmm10, xmm4
 850        aesdec	xmm11, xmm4
 851        movdqu	xmm4, OWORD PTR [r8+80]
 852        aesdec	xmm8, xmm4
 853        aesdec	xmm9, xmm4
 854        aesdec	xmm10, xmm4
 855        aesdec	xmm11, xmm4
 856        movdqu	xmm4, OWORD PTR [r8+96]
 857        aesdec	xmm8, xmm4
 858        aesdec	xmm9, xmm4
 859        aesdec	xmm10, xmm4
 860        aesdec	xmm11, xmm4
 861        movdqu	xmm4, OWORD PTR [r8+112]
 862        aesdec	xmm8, xmm4
 863        aesdec	xmm9, xmm4
 864        aesdec	xmm10, xmm4
 865        aesdec	xmm11, xmm4
 866        movdqu	xmm4, OWORD PTR [r8+128]
 867        aesdec	xmm8, xmm4
 868        aesdec	xmm9, xmm4
 869        aesdec	xmm10, xmm4
 870        aesdec	xmm11, xmm4
 871        movdqu	xmm4, OWORD PTR [r8+144]
 872        aesdec	xmm8, xmm4
 873        aesdec	xmm9, xmm4
 874        aesdec	xmm10, xmm4
 875        aesdec	xmm11, xmm4
 876        cmp	r10d, 11
 877        movdqu	xmm4, OWORD PTR [r8+160]
 878        jl	L_AES_XTS_decrypt_aesni_aes_dec_64_aes_dec_block_last
 879        aesdec	xmm8, xmm4
 880        aesdec	xmm9, xmm4
 881        aesdec	xmm10, xmm4
 882        aesdec	xmm11, xmm4
 883        movdqu	xmm4, OWORD PTR [r8+176]
 884        aesdec	xmm8, xmm4
 885        aesdec	xmm9, xmm4
 886        aesdec	xmm10, xmm4
 887        aesdec	xmm11, xmm4
 888        cmp	r10d, 13
 889        movdqu	xmm4, OWORD PTR [r8+192]
 890        jl	L_AES_XTS_decrypt_aesni_aes_dec_64_aes_dec_block_last
 891        aesdec	xmm8, xmm4
 892        aesdec	xmm9, xmm4
 893        aesdec	xmm10, xmm4
 894        aesdec	xmm11, xmm4
 895        movdqu	xmm4, OWORD PTR [r8+208]
 896        aesdec	xmm8, xmm4
 897        aesdec	xmm9, xmm4
 898        aesdec	xmm10, xmm4
 899        aesdec	xmm11, xmm4
 900        movdqu	xmm4, OWORD PTR [r8+224]
 901L_AES_XTS_decrypt_aesni_aes_dec_64_aes_dec_block_last:
 902        aesdeclast	xmm8, xmm4
 903        aesdeclast	xmm9, xmm4
 904        aesdeclast	xmm10, xmm4
 905        aesdeclast	xmm11, xmm4
 906        pxor	xmm8, xmm0
 907        pxor	xmm9, xmm1
 908        pxor	xmm10, xmm2
 909        pxor	xmm11, xmm3
 910        movdqu	OWORD PTR [rdx], xmm8
 911        movdqu	OWORD PTR [rdx+16], xmm9
 912        movdqu	OWORD PTR [rdx+32], xmm10
 913        movdqu	OWORD PTR [rdx+48], xmm11
 914        movdqa	xmm4, xmm3
 915        movdqa	xmm0, xmm3
 916        psrad	xmm4, 31
 917        pslld	xmm0, 1
 918        pshufd	xmm4, xmm4, 147
 919        pand	xmm4, xmm12
 920        pxor	xmm0, xmm4
 921        add	r13d, 64
 922        cmp	r13d, r11d
 923        jl	L_AES_XTS_decrypt_aesni_dec_64
 924L_AES_XTS_decrypt_aesni_done_64:
 925        cmp	r13d, eax
 926        mov	r11d, eax
 927        je	L_AES_XTS_decrypt_aesni_done_dec
 928        and	r11d, 4294967280
 929        cmp	r11d, eax
 930        je	L_AES_XTS_decrypt_aesni_mul16
 931        sub	r11d, 16
 932        sub	r11d, r13d
 933        cmp	r11d, 16
 934        jl	L_AES_XTS_decrypt_aesni_last_31_start
 935        add	r11d, r13d
 936L_AES_XTS_decrypt_aesni_mul16:
 937L_AES_XTS_decrypt_aesni_dec_16:
 938        ; 16 bytes of input
 939        lea	rcx, QWORD PTR [rdi+r13]
 940        movdqu	xmm8, OWORD PTR [rcx]
 941        pxor	xmm8, xmm0
 942        ; aes_dec_block
 943        pxor	xmm8, [r8]
 944        movdqu	xmm5, OWORD PTR [r8+16]
 945        aesdec	xmm8, xmm5
 946        movdqu	xmm5, OWORD PTR [r8+32]
 947        aesdec	xmm8, xmm5
 948        movdqu	xmm5, OWORD PTR [r8+48]
 949        aesdec	xmm8, xmm5
 950        movdqu	xmm5, OWORD PTR [r8+64]
 951        aesdec	xmm8, xmm5
 952        movdqu	xmm5, OWORD PTR [r8+80]
 953        aesdec	xmm8, xmm5
 954        movdqu	xmm5, OWORD PTR [r8+96]
 955        aesdec	xmm8, xmm5
 956        movdqu	xmm5, OWORD PTR [r8+112]
 957        aesdec	xmm8, xmm5
 958        movdqu	xmm5, OWORD PTR [r8+128]
 959        aesdec	xmm8, xmm5
 960        movdqu	xmm5, OWORD PTR [r8+144]
 961        aesdec	xmm8, xmm5
 962        cmp	r10d, 11
 963        movdqu	xmm5, OWORD PTR [r8+160]
 964        jl	L_AES_XTS_decrypt_aesni_aes_dec_block_last
 965        aesdec	xmm8, xmm5
 966        movdqu	xmm6, OWORD PTR [r8+176]
 967        aesdec	xmm8, xmm6
 968        cmp	r10d, 13
 969        movdqu	xmm5, OWORD PTR [r8+192]
 970        jl	L_AES_XTS_decrypt_aesni_aes_dec_block_last
 971        aesdec	xmm8, xmm5
 972        movdqu	xmm6, OWORD PTR [r8+208]
 973        aesdec	xmm8, xmm6
 974        movdqu	xmm5, OWORD PTR [r8+224]
 975L_AES_XTS_decrypt_aesni_aes_dec_block_last:
 976        aesdeclast	xmm8, xmm5
 977        pxor	xmm8, xmm0
 978        lea	rcx, QWORD PTR [rsi+r13]
 979        movdqu	OWORD PTR [rcx], xmm8
 980        movdqa	xmm4, xmm0
 981        psrad	xmm4, 31
 982        pslld	xmm0, 1
 983        pshufd	xmm4, xmm4, 147
 984        pand	xmm4, xmm12
 985        pxor	xmm0, xmm4
 986        add	r13d, 16
 987        cmp	r13d, r11d
 988        jl	L_AES_XTS_decrypt_aesni_dec_16
 989        cmp	r13d, eax
 990        je	L_AES_XTS_decrypt_aesni_done_dec
 991L_AES_XTS_decrypt_aesni_last_31_start:
 992        movdqa	xmm4, xmm0
 993        movdqa	xmm7, xmm0
 994        psrad	xmm4, 31
 995        pslld	xmm7, 1
 996        pshufd	xmm4, xmm4, 147
 997        pand	xmm4, xmm12
 998        pxor	xmm7, xmm4
 999        lea	rcx, QWORD PTR [rdi+r13]
1000        movdqu	xmm8, OWORD PTR [rcx]
1001        pxor	xmm8, xmm7
1002        ; aes_dec_block
1003        pxor	xmm8, [r8]
1004        movdqu	xmm5, OWORD PTR [r8+16]
1005        aesdec	xmm8, xmm5
1006        movdqu	xmm5, OWORD PTR [r8+32]
1007        aesdec	xmm8, xmm5
1008        movdqu	xmm5, OWORD PTR [r8+48]
1009        aesdec	xmm8, xmm5
1010        movdqu	xmm5, OWORD PTR [r8+64]
1011        aesdec	xmm8, xmm5
1012        movdqu	xmm5, OWORD PTR [r8+80]
1013        aesdec	xmm8, xmm5
1014        movdqu	xmm5, OWORD PTR [r8+96]
1015        aesdec	xmm8, xmm5
1016        movdqu	xmm5, OWORD PTR [r8+112]
1017        aesdec	xmm8, xmm5
1018        movdqu	xmm5, OWORD PTR [r8+128]
1019        aesdec	xmm8, xmm5
1020        movdqu	xmm5, OWORD PTR [r8+144]
1021        aesdec	xmm8, xmm5
1022        cmp	r10d, 11
1023        movdqu	xmm5, OWORD PTR [r8+160]
1024        jl	L_AES_XTS_decrypt_aesni_last_31_aes_dec_block_last
1025        aesdec	xmm8, xmm5
1026        movdqu	xmm6, OWORD PTR [r8+176]
1027        aesdec	xmm8, xmm6
1028        cmp	r10d, 13
1029        movdqu	xmm5, OWORD PTR [r8+192]
1030        jl	L_AES_XTS_decrypt_aesni_last_31_aes_dec_block_last
1031        aesdec	xmm8, xmm5
1032        movdqu	xmm6, OWORD PTR [r8+208]
1033        aesdec	xmm8, xmm6
1034        movdqu	xmm5, OWORD PTR [r8+224]
1035L_AES_XTS_decrypt_aesni_last_31_aes_dec_block_last:
1036        aesdeclast	xmm8, xmm5
1037        pxor	xmm8, xmm7
1038        movdqu	OWORD PTR [rsp], xmm8
1039        add	r13, 16
1040        xor	rdx, rdx
1041L_AES_XTS_decrypt_aesni_last_31_byte_loop:
1042        mov	r11b, BYTE PTR [rsp+rdx]
1043        mov	cl, BYTE PTR [rdi+r13]
1044        mov	BYTE PTR [rsi+r13], r11b
1045        mov	BYTE PTR [rsp+rdx], cl
1046        inc	r13d
1047        inc	edx
1048        cmp	r13d, eax
1049        jl	L_AES_XTS_decrypt_aesni_last_31_byte_loop
1050        sub	r13, rdx
1051        movdqu	xmm8, OWORD PTR [rsp]
1052        pxor	xmm8, xmm0
1053        ; aes_dec_block
1054        pxor	xmm8, [r8]
1055        movdqu	xmm5, OWORD PTR [r8+16]
1056        aesdec	xmm8, xmm5
1057        movdqu	xmm5, OWORD PTR [r8+32]
1058        aesdec	xmm8, xmm5
1059        movdqu	xmm5, OWORD PTR [r8+48]
1060        aesdec	xmm8, xmm5
1061        movdqu	xmm5, OWORD PTR [r8+64]
1062        aesdec	xmm8, xmm5
1063        movdqu	xmm5, OWORD PTR [r8+80]
1064        aesdec	xmm8, xmm5
1065        movdqu	xmm5, OWORD PTR [r8+96]
1066        aesdec	xmm8, xmm5
1067        movdqu	xmm5, OWORD PTR [r8+112]
1068        aesdec	xmm8, xmm5
1069        movdqu	xmm5, OWORD PTR [r8+128]
1070        aesdec	xmm8, xmm5
1071        movdqu	xmm5, OWORD PTR [r8+144]
1072        aesdec	xmm8, xmm5
1073        cmp	r10d, 11
1074        movdqu	xmm5, OWORD PTR [r8+160]
1075        jl	L_AES_XTS_decrypt_aesni_last_31_2_aes_dec_block_last
1076        aesdec	xmm8, xmm5
1077        movdqu	xmm6, OWORD PTR [r8+176]
1078        aesdec	xmm8, xmm6
1079        cmp	r10d, 13
1080        movdqu	xmm5, OWORD PTR [r8+192]
1081        jl	L_AES_XTS_decrypt_aesni_last_31_2_aes_dec_block_last
1082        aesdec	xmm8, xmm5
1083        movdqu	xmm6, OWORD PTR [r8+208]
1084        aesdec	xmm8, xmm6
1085        movdqu	xmm5, OWORD PTR [r8+224]
1086L_AES_XTS_decrypt_aesni_last_31_2_aes_dec_block_last:
1087        aesdeclast	xmm8, xmm5
1088        pxor	xmm8, xmm0
1089        sub	r13, 16
1090        lea	rcx, QWORD PTR [rsi+r13]
1091        movdqu	OWORD PTR [rcx], xmm8
1092L_AES_XTS_decrypt_aesni_done_dec:
1093        movdqu	xmm6, OWORD PTR [rsp+16]
1094        movdqu	xmm7, OWORD PTR [rsp+32]
1095        movdqu	xmm8, OWORD PTR [rsp+48]
1096        movdqu	xmm9, OWORD PTR [rsp+64]
1097        movdqu	xmm10, OWORD PTR [rsp+80]
1098        movdqu	xmm11, OWORD PTR [rsp+96]
1099        movdqu	xmm12, OWORD PTR [rsp+112]
1100        add	rsp, 128
1101        pop	r13
1102        pop	r12
1103        pop	rsi
1104        pop	rdi
1105        ret
1106AES_XTS_decrypt_aesni ENDP
1107_TEXT ENDS
1108_TEXT SEGMENT READONLY PARA
1109AES_XTS_decrypt_update_aesni PROC
1110        push	rdi
1111        push	rsi
1112        push	r12
1113        mov	rdi, rcx
1114        mov	rsi, rdx
1115        mov	rax, r8
1116        mov	r10, r9
1117        mov	r8, QWORD PTR [rsp+64]
1118        mov	r9d, DWORD PTR [rsp+72]
1119        sub	rsp, 128
1120        movdqu	OWORD PTR [rsp+16], xmm6
1121        movdqu	OWORD PTR [rsp+32], xmm7
1122        movdqu	OWORD PTR [rsp+48], xmm8
1123        movdqu	OWORD PTR [rsp+64], xmm9
1124        movdqu	OWORD PTR [rsp+80], xmm10
1125        movdqu	OWORD PTR [rsp+96], xmm11
1126        movdqu	OWORD PTR [rsp+112], xmm12
1127        movdqu	xmm12, OWORD PTR L_aes_xts_gc_xts
1128        movdqu	xmm0, OWORD PTR [r8]
1129        xor	r12d, r12d
1130        mov	r11d, eax
1131        and	r11d, 4294967280
1132        cmp	r11d, eax
1133        je	L_AES_XTS_decrypt_update_aesni_mul16_64
1134        sub	r11d, 16
1135        cmp	r11d, 16
1136        jl	L_AES_XTS_decrypt_update_aesni_last_31_start
1137L_AES_XTS_decrypt_update_aesni_mul16_64:
1138        cmp	r11d, 64
1139        jl	L_AES_XTS_decrypt_update_aesni_done_64
1140        and	r11d, 4294967232
1141L_AES_XTS_decrypt_update_aesni_dec_64:
1142        ; 64 bytes of input
1143        ; aes_dec_64
1144        lea	rcx, QWORD PTR [rdi+r12]
1145        lea	rdx, QWORD PTR [rsi+r12]
1146        movdqu	xmm8, OWORD PTR [rcx]
1147        movdqu	xmm9, OWORD PTR [rcx+16]
1148        movdqu	xmm10, OWORD PTR [rcx+32]
1149        movdqu	xmm11, OWORD PTR [rcx+48]
1150        movdqa	xmm4, xmm0
1151        movdqa	xmm1, xmm0
1152        psrad	xmm4, 31
1153        pslld	xmm1, 1
1154        pshufd	xmm4, xmm4, 147
1155        pand	xmm4, xmm12
1156        pxor	xmm1, xmm4
1157        movdqa	xmm4, xmm1
1158        movdqa	xmm2, xmm1
1159        psrad	xmm4, 31
1160        pslld	xmm2, 1
1161        pshufd	xmm4, xmm4, 147
1162        pand	xmm4, xmm12
1163        pxor	xmm2, xmm4
1164        movdqa	xmm4, xmm2
1165        movdqa	xmm3, xmm2
1166        psrad	xmm4, 31
1167        pslld	xmm3, 1
1168        pshufd	xmm4, xmm4, 147
1169        pand	xmm4, xmm12
1170        pxor	xmm3, xmm4
1171        pxor	xmm8, xmm0
1172        pxor	xmm9, xmm1
1173        pxor	xmm10, xmm2
1174        pxor	xmm11, xmm3
1175        ; aes_dec_block
1176        movdqu	xmm4, OWORD PTR [r10]
1177        pxor	xmm8, xmm4
1178        pxor	xmm9, xmm4
1179        pxor	xmm10, xmm4
1180        pxor	xmm11, xmm4
1181        movdqu	xmm4, OWORD PTR [r10+16]
1182        aesdec	xmm8, xmm4
1183        aesdec	xmm9, xmm4
1184        aesdec	xmm10, xmm4
1185        aesdec	xmm11, xmm4
1186        movdqu	xmm4, OWORD PTR [r10+32]
1187        aesdec	xmm8, xmm4
1188        aesdec	xmm9, xmm4
1189        aesdec	xmm10, xmm4
1190        aesdec	xmm11, xmm4
1191        movdqu	xmm4, OWORD PTR [r10+48]
1192        aesdec	xmm8, xmm4
1193        aesdec	xmm9, xmm4
1194        aesdec	xmm10, xmm4
1195        aesdec	xmm11, xmm4
1196        movdqu	xmm4, OWORD PTR [r10+64]
1197        aesdec	xmm8, xmm4
1198        aesdec	xmm9, xmm4
1199        aesdec	xmm10, xmm4
1200        aesdec	xmm11, xmm4
1201        movdqu	xmm4, OWORD PTR [r10+80]
1202        aesdec	xmm8, xmm4
1203        aesdec	xmm9, xmm4
1204        aesdec	xmm10, xmm4
1205        aesdec	xmm11, xmm4
1206        movdqu	xmm4, OWORD PTR [r10+96]
1207        aesdec	xmm8, xmm4
1208        aesdec	xmm9, xmm4
1209        aesdec	xmm10, xmm4
1210        aesdec	xmm11, xmm4
1211        movdqu	xmm4, OWORD PTR [r10+112]
1212        aesdec	xmm8, xmm4
1213        aesdec	xmm9, xmm4
1214        aesdec	xmm10, xmm4
1215        aesdec	xmm11, xmm4
1216        movdqu	xmm4, OWORD PTR [r10+128]
1217        aesdec	xmm8, xmm4
1218        aesdec	xmm9, xmm4
1219        aesdec	xmm10, xmm4
1220        aesdec	xmm11, xmm4
1221        movdqu	xmm4, OWORD PTR [r10+144]
1222        aesdec	xmm8, xmm4
1223        aesdec	xmm9, xmm4
1224        aesdec	xmm10, xmm4
1225        aesdec	xmm11, xmm4
1226        cmp	r9d, 11
1227        movdqu	xmm4, OWORD PTR [r10+160]
1228        jl	L_AES_XTS_decrypt_update_aesni_aes_dec_64_aes_dec_block_last
1229        aesdec	xmm8, xmm4
1230        aesdec	xmm9, xmm4
1231        aesdec	xmm10, xmm4
1232        aesdec	xmm11, xmm4
1233        movdqu	xmm4, OWORD PTR [r10+176]
1234        aesdec	xmm8, xmm4
1235        aesdec	xmm9, xmm4
1236        aesdec	xmm10, xmm4
1237        aesdec	xmm11, xmm4
1238        cmp	r9d, 13
1239        movdqu	xmm4, OWORD PTR [r10+192]
1240        jl	L_AES_XTS_decrypt_update_aesni_aes_dec_64_aes_dec_block_last
1241        aesdec	xmm8, xmm4
1242        aesdec	xmm9, xmm4
1243        aesdec	xmm10, xmm4
1244        aesdec	xmm11, xmm4
1245        movdqu	xmm4, OWORD PTR [r10+208]
1246        aesdec	xmm8, xmm4
1247        aesdec	xmm9, xmm4
1248        aesdec	xmm10, xmm4
1249        aesdec	xmm11, xmm4
1250        movdqu	xmm4, OWORD PTR [r10+224]
1251L_AES_XTS_decrypt_update_aesni_aes_dec_64_aes_dec_block_last:
1252        aesdeclast	xmm8, xmm4
1253        aesdeclast	xmm9, xmm4
1254        aesdeclast	xmm10, xmm4
1255        aesdeclast	xmm11, xmm4
1256        pxor	xmm8, xmm0
1257        pxor	xmm9, xmm1
1258        pxor	xmm10, xmm2
1259        pxor	xmm11, xmm3
1260        movdqu	OWORD PTR [rdx], xmm8
1261        movdqu	OWORD PTR [rdx+16], xmm9
1262        movdqu	OWORD PTR [rdx+32], xmm10
1263        movdqu	OWORD PTR [rdx+48], xmm11
1264        movdqa	xmm4, xmm3
1265        movdqa	xmm0, xmm3
1266        psrad	xmm4, 31
1267        pslld	xmm0, 1
1268        pshufd	xmm4, xmm4, 147
1269        pand	xmm4, xmm12
1270        pxor	xmm0, xmm4
1271        add	r12d, 64
1272        cmp	r12d, r11d
1273        jl	L_AES_XTS_decrypt_update_aesni_dec_64
1274L_AES_XTS_decrypt_update_aesni_done_64:
1275        cmp	r12d, eax
1276        mov	r11d, eax
1277        je	L_AES_XTS_decrypt_update_aesni_done_dec
1278        and	r11d, 4294967280
1279        cmp	r11d, eax
1280        je	L_AES_XTS_decrypt_update_aesni_mul16
1281        sub	r11d, 16
1282        sub	r11d, r12d
1283        cmp	r11d, 16
1284        jl	L_AES_XTS_decrypt_update_aesni_last_31_start
1285        add	r11d, r12d
1286L_AES_XTS_decrypt_update_aesni_mul16:
1287L_AES_XTS_decrypt_update_aesni_dec_16:
1288        ; 16 bytes of input
1289        lea	rcx, QWORD PTR [rdi+r12]
1290        movdqu	xmm8, OWORD PTR [rcx]
1291        pxor	xmm8, xmm0
1292        ; aes_dec_block
1293        pxor	xmm8, [r10]
1294        movdqu	xmm5, OWORD PTR [r10+16]
1295        aesdec	xmm8, xmm5
1296        movdqu	xmm5, OWORD PTR [r10+32]
1297        aesdec	xmm8, xmm5
1298        movdqu	xmm5, OWORD PTR [r10+48]
1299        aesdec	xmm8, xmm5
1300        movdqu	xmm5, OWORD PTR [r10+64]
1301        aesdec	xmm8, xmm5
1302        movdqu	xmm5, OWORD PTR [r10+80]
1303        aesdec	xmm8, xmm5
1304        movdqu	xmm5, OWORD PTR [r10+96]
1305        aesdec	xmm8, xmm5
1306        movdqu	xmm5, OWORD PTR [r10+112]
1307        aesdec	xmm8, xmm5
1308        movdqu	xmm5, OWORD PTR [r10+128]
1309        aesdec	xmm8, xmm5
1310        movdqu	xmm5, OWORD PTR [r10+144]
1311        aesdec	xmm8, xmm5
1312        cmp	r9d, 11
1313        movdqu	xmm5, OWORD PTR [r10+160]
1314        jl	L_AES_XTS_decrypt_update_aesni_aes_dec_block_last
1315        aesdec	xmm8, xmm5
1316        movdqu	xmm6, OWORD PTR [r10+176]
1317        aesdec	xmm8, xmm6
1318        cmp	r9d, 13
1319        movdqu	xmm5, OWORD PTR [r10+192]
1320        jl	L_AES_XTS_decrypt_update_aesni_aes_dec_block_last
1321        aesdec	xmm8, xmm5
1322        movdqu	xmm6, OWORD PTR [r10+208]
1323        aesdec	xmm8, xmm6
1324        movdqu	xmm5, OWORD PTR [r10+224]
1325L_AES_XTS_decrypt_update_aesni_aes_dec_block_last:
1326        aesdeclast	xmm8, xmm5
1327        pxor	xmm8, xmm0
1328        lea	rcx, QWORD PTR [rsi+r12]
1329        movdqu	OWORD PTR [rcx], xmm8
1330        movdqa	xmm4, xmm0
1331        psrad	xmm4, 31
1332        pslld	xmm0, 1
1333        pshufd	xmm4, xmm4, 147
1334        pand	xmm4, xmm12
1335        pxor	xmm0, xmm4
1336        add	r12d, 16
1337        cmp	r12d, r11d
1338        jl	L_AES_XTS_decrypt_update_aesni_dec_16
1339        cmp	r12d, eax
1340        je	L_AES_XTS_decrypt_update_aesni_done_dec
1341L_AES_XTS_decrypt_update_aesni_last_31_start:
1342        movdqa	xmm4, xmm0
1343        movdqa	xmm7, xmm0
1344        psrad	xmm4, 31
1345        pslld	xmm7, 1
1346        pshufd	xmm4, xmm4, 147
1347        pand	xmm4, xmm12
1348        pxor	xmm7, xmm4
1349        lea	rcx, QWORD PTR [rdi+r12]
1350        movdqu	xmm8, OWORD PTR [rcx]
1351        pxor	xmm8, xmm7
1352        ; aes_dec_block
1353        pxor	xmm8, [r10]
1354        movdqu	xmm5, OWORD PTR [r10+16]
1355        aesdec	xmm8, xmm5
1356        movdqu	xmm5, OWORD PTR [r10+32]
1357        aesdec	xmm8, xmm5
1358        movdqu	xmm5, OWORD PTR [r10+48]
1359        aesdec	xmm8, xmm5
1360        movdqu	xmm5, OWORD PTR [r10+64]
1361        aesdec	xmm8, xmm5
1362        movdqu	xmm5, OWORD PTR [r10+80]
1363        aesdec	xmm8, xmm5
1364        movdqu	xmm5, OWORD PTR [r10+96]
1365        aesdec	xmm8, xmm5
1366        movdqu	xmm5, OWORD PTR [r10+112]
1367        aesdec	xmm8, xmm5
1368        movdqu	xmm5, OWORD PTR [r10+128]
1369        aesdec	xmm8, xmm5
1370        movdqu	xmm5, OWORD PTR [r10+144]
1371        aesdec	xmm8, xmm5
1372        cmp	r9d, 11
1373        movdqu	xmm5, OWORD PTR [r10+160]
1374        jl	L_AES_XTS_decrypt_update_aesni_last_31_aes_dec_block_last
1375        aesdec	xmm8, xmm5
1376        movdqu	xmm6, OWORD PTR [r10+176]
1377        aesdec	xmm8, xmm6
1378        cmp	r9d, 13
1379        movdqu	xmm5, OWORD PTR [r10+192]
1380        jl	L_AES_XTS_decrypt_update_aesni_last_31_aes_dec_block_last
1381        aesdec	xmm8, xmm5
1382        movdqu	xmm6, OWORD PTR [r10+208]
1383        aesdec	xmm8, xmm6
1384        movdqu	xmm5, OWORD PTR [r10+224]
1385L_AES_XTS_decrypt_update_aesni_last_31_aes_dec_block_last:
1386        aesdeclast	xmm8, xmm5
1387        pxor	xmm8, xmm7
1388        movdqu	OWORD PTR [rsp], xmm8
1389        add	r12, 16
1390        xor	rdx, rdx
1391L_AES_XTS_decrypt_update_aesni_last_31_byte_loop:
1392        mov	r11b, BYTE PTR [rsp+rdx]
1393        mov	cl, BYTE PTR [rdi+r12]
1394        mov	BYTE PTR [rsi+r12], r11b
1395        mov	BYTE PTR [rsp+rdx], cl
1396        inc	r12d
1397        inc	edx
1398        cmp	r12d, eax
1399        jl	L_AES_XTS_decrypt_update_aesni_last_31_byte_loop
1400        sub	r12, rdx
1401        movdqu	xmm8, OWORD PTR [rsp]
1402        pxor	xmm8, xmm0
1403        ; aes_dec_block
1404        pxor	xmm8, [r10]
1405        movdqu	xmm5, OWORD PTR [r10+16]
1406        aesdec	xmm8, xmm5
1407        movdqu	xmm5, OWORD PTR [r10+32]
1408        aesdec	xmm8, xmm5
1409        movdqu	xmm5, OWORD PTR [r10+48]
1410        aesdec	xmm8, xmm5
1411        movdqu	xmm5, OWORD PTR [r10+64]
1412        aesdec	xmm8, xmm5
1413        movdqu	xmm5, OWORD PTR [r10+80]
1414        aesdec	xmm8, xmm5
1415        movdqu	xmm5, OWORD PTR [r10+96]
1416        aesdec	xmm8, xmm5
1417        movdqu	xmm5, OWORD PTR [r10+112]
1418        aesdec	xmm8, xmm5
1419        movdqu	xmm5, OWORD PTR [r10+128]
1420        aesdec	xmm8, xmm5
1421        movdqu	xmm5, OWORD PTR [r10+144]
1422        aesdec	xmm8, xmm5
1423        cmp	r9d, 11
1424        movdqu	xmm5, OWORD PTR [r10+160]
1425        jl	L_AES_XTS_decrypt_update_aesni_last_31_2_aes_dec_block_last
1426        aesdec	xmm8, xmm5
1427        movdqu	xmm6, OWORD PTR [r10+176]
1428        aesdec	xmm8, xmm6
1429        cmp	r9d, 13
1430        movdqu	xmm5, OWORD PTR [r10+192]
1431        jl	L_AES_XTS_decrypt_update_aesni_last_31_2_aes_dec_block_last
1432        aesdec	xmm8, xmm5
1433        movdqu	xmm6, OWORD PTR [r10+208]
1434        aesdec	xmm8, xmm6
1435        movdqu	xmm5, OWORD PTR [r10+224]
1436L_AES_XTS_decrypt_update_aesni_last_31_2_aes_dec_block_last:
1437        aesdeclast	xmm8, xmm5
1438        pxor	xmm8, xmm0
1439        sub	r12, 16
1440        lea	rcx, QWORD PTR [rsi+r12]
1441        movdqu	OWORD PTR [rcx], xmm8
1442L_AES_XTS_decrypt_update_aesni_done_dec:
1443        movdqu	OWORD PTR [r8], xmm0
1444        movdqu	xmm6, OWORD PTR [rsp+16]
1445        movdqu	xmm7, OWORD PTR [rsp+32]
1446        movdqu	xmm8, OWORD PTR [rsp+48]
1447        movdqu	xmm9, OWORD PTR [rsp+64]
1448        movdqu	xmm10, OWORD PTR [rsp+80]
1449        movdqu	xmm11, OWORD PTR [rsp+96]
1450        movdqu	xmm12, OWORD PTR [rsp+112]
1451        add	rsp, 128
1452        pop	r12
1453        pop	rsi
1454        pop	rdi
1455        ret
1456AES_XTS_decrypt_update_aesni ENDP
1457_TEXT ENDS
1458IFDEF HAVE_INTEL_AVX1
1459_TEXT SEGMENT READONLY PARA
1460AES_XTS_init_avx1 PROC
1461        vmovdqu	xmm0, OWORD PTR [rcx]
1462        ; aes_enc_block
1463        vpxor	xmm0, xmm0, [rdx]
1464        vmovdqu	xmm2, OWORD PTR [rdx+16]
1465        vaesenc	xmm0, xmm0, xmm2
1466        vmovdqu	xmm2, OWORD PTR [rdx+32]
1467        vaesenc	xmm0, xmm0, xmm2
1468        vmovdqu	xmm2, OWORD PTR [rdx+48]
1469        vaesenc	xmm0, xmm0, xmm2
1470        vmovdqu	xmm2, OWORD PTR [rdx+64]
1471        vaesenc	xmm0, xmm0, xmm2
1472        vmovdqu	xmm2, OWORD PTR [rdx+80]
1473        vaesenc	xmm0, xmm0, xmm2
1474        vmovdqu	xmm2, OWORD PTR [rdx+96]
1475        vaesenc	xmm0, xmm0, xmm2
1476        vmovdqu	xmm2, OWORD PTR [rdx+112]
1477        vaesenc	xmm0, xmm0, xmm2
1478        vmovdqu	xmm2, OWORD PTR [rdx+128]
1479        vaesenc	xmm0, xmm0, xmm2
1480        vmovdqu	xmm2, OWORD PTR [rdx+144]
1481        vaesenc	xmm0, xmm0, xmm2
1482        cmp	r8d, 11
1483        vmovdqu	xmm2, OWORD PTR [rdx+160]
1484        jl	L_AES_XTS_init_avx1_tweak_aes_enc_block_last
1485        vaesenc	xmm0, xmm0, xmm2
1486        vmovdqu	xmm3, OWORD PTR [rdx+176]
1487        vaesenc	xmm0, xmm0, xmm3
1488        cmp	r8d, 13
1489        vmovdqu	xmm2, OWORD PTR [rdx+192]
1490        jl	L_AES_XTS_init_avx1_tweak_aes_enc_block_last
1491        vaesenc	xmm0, xmm0, xmm2
1492        vmovdqu	xmm3, OWORD PTR [rdx+208]
1493        vaesenc	xmm0, xmm0, xmm3
1494        vmovdqu	xmm2, OWORD PTR [rdx+224]
1495L_AES_XTS_init_avx1_tweak_aes_enc_block_last:
1496        vaesenclast	xmm0, xmm0, xmm2
1497        vmovdqu	OWORD PTR [rcx], xmm0
1498        ret
1499AES_XTS_init_avx1 ENDP
1500_TEXT ENDS
1501_DATA SEGMENT
1502ALIGN 16
1503L_avx1_aes_xts_gc_xts DWORD \
1504     00000087h,  00000001h,  00000001h,  00000001h
1505ptr_L_avx1_aes_xts_gc_xts QWORD L_avx1_aes_xts_gc_xts
1506_DATA ENDS
1507_TEXT SEGMENT READONLY PARA
1508AES_XTS_encrypt_avx1 PROC
1509        push	rdi
1510        push	rsi
1511        push	r12
1512        push	r13
1513        mov	rdi, rcx
1514        mov	rsi, rdx
1515        mov	rax, r8
1516        mov	r12, r9
1517        mov	r8, QWORD PTR [rsp+72]
1518        mov	r9, QWORD PTR [rsp+80]
1519        mov	r10d, DWORD PTR [rsp+88]
1520        sub	rsp, 176
1521        vmovdqu	OWORD PTR [rsp+64], xmm6
1522        vmovdqu	OWORD PTR [rsp+80], xmm7
1523        vmovdqu	OWORD PTR [rsp+96], xmm8
1524        vmovdqu	OWORD PTR [rsp+112], xmm9
1525        vmovdqu	OWORD PTR [rsp+128], xmm10
1526        vmovdqu	OWORD PTR [rsp+144], xmm11
1527        vmovdqu	OWORD PTR [rsp+160], xmm12
1528        vmovdqu	xmm12, OWORD PTR L_avx1_aes_xts_gc_xts
1529        vmovdqu	xmm0, OWORD PTR [r12]
1530        ; aes_enc_block
1531        vpxor	xmm0, xmm0, [r9]
1532        vmovdqu	xmm5, OWORD PTR [r9+16]
1533        vaesenc	xmm0, xmm0, xmm5
1534        vmovdqu	xmm5, OWORD PTR [r9+32]
1535        vaesenc	xmm0, xmm0, xmm5
1536        vmovdqu	xmm5, OWORD PTR [r9+48]
1537        vaesenc	xmm0, xmm0, xmm5
1538        vmovdqu	xmm5, OWORD PTR [r9+64]
1539        vaesenc	xmm0, xmm0, xmm5
1540        vmovdqu	xmm5, OWORD PTR [r9+80]
1541        vaesenc	xmm0, xmm0, xmm5
1542        vmovdqu	xmm5, OWORD PTR [r9+96]
1543        vaesenc	xmm0, xmm0, xmm5
1544        vmovdqu	xmm5, OWORD PTR [r9+112]
1545        vaesenc	xmm0, xmm0, xmm5
1546        vmovdqu	xmm5, OWORD PTR [r9+128]
1547        vaesenc	xmm0, xmm0, xmm5
1548        vmovdqu	xmm5, OWORD PTR [r9+144]
1549        vaesenc	xmm0, xmm0, xmm5
1550        cmp	r10d, 11
1551        vmovdqu	xmm5, OWORD PTR [r9+160]
1552        jl	L_AES_XTS_encrypt_avx1_tweak_aes_enc_block_last
1553        vaesenc	xmm0, xmm0, xmm5
1554        vmovdqu	xmm6, OWORD PTR [r9+176]
1555        vaesenc	xmm0, xmm0, xmm6
1556        cmp	r10d, 13
1557        vmovdqu	xmm5, OWORD PTR [r9+192]
1558        jl	L_AES_XTS_encrypt_avx1_tweak_aes_enc_block_last
1559        vaesenc	xmm0, xmm0, xmm5
1560        vmovdqu	xmm6, OWORD PTR [r9+208]
1561        vaesenc	xmm0, xmm0, xmm6
1562        vmovdqu	xmm5, OWORD PTR [r9+224]
1563L_AES_XTS_encrypt_avx1_tweak_aes_enc_block_last:
1564        vaesenclast	xmm0, xmm0, xmm5
1565        xor	r13d, r13d
1566        cmp	eax, 64
1567        mov	r11d, eax
1568        jl	L_AES_XTS_encrypt_avx1_done_64
1569        and	r11d, 4294967232
1570L_AES_XTS_encrypt_avx1_enc_64:
1571        ; 64 bytes of input
1572        ; aes_enc_64
1573        lea	rcx, QWORD PTR [rdi+r13]
1574        lea	rdx, QWORD PTR [rsi+r13]
1575        vmovdqu	xmm8, OWORD PTR [rcx]
1576        vmovdqu	xmm9, OWORD PTR [rcx+16]
1577        vmovdqu	xmm10, OWORD PTR [rcx+32]
1578        vmovdqu	xmm11, OWORD PTR [rcx+48]
1579        vpsrad	xmm4, xmm0, 31
1580        vpslld	xmm1, xmm0, 1
1581        vpshufd	xmm4, xmm4, 147
1582        vpand	xmm4, xmm4, xmm12
1583        vpxor	xmm1, xmm1, xmm4
1584        vpsrad	xmm4, xmm1, 31
1585        vpslld	xmm2, xmm1, 1
1586        vpshufd	xmm4, xmm4, 147
1587        vpand	xmm4, xmm4, xmm12
1588        vpxor	xmm2, xmm2, xmm4
1589        vpsrad	xmm4, xmm2, 31
1590        vpslld	xmm3, xmm2, 1
1591        vpshufd	xmm4, xmm4, 147
1592        vpand	xmm4, xmm4, xmm12
1593        vpxor	xmm3, xmm3, xmm4
1594        vpxor	xmm8, xmm8, xmm0
1595        vpxor	xmm9, xmm9, xmm1
1596        vpxor	xmm10, xmm10, xmm2
1597        vpxor	xmm11, xmm11, xmm3
1598        ; aes_enc_block
1599        vmovdqu	xmm4, OWORD PTR [r8]
1600        vpxor	xmm8, xmm8, xmm4
1601        vpxor	xmm9, xmm9, xmm4
1602        vpxor	xmm10, xmm10, xmm4
1603        vpxor	xmm11, xmm11, xmm4
1604        vmovdqu	xmm4, OWORD PTR [r8+16]
1605        vaesenc	xmm8, xmm8, xmm4
1606        vaesenc	xmm9, xmm9, xmm4
1607        vaesenc	xmm10, xmm10, xmm4
1608        vaesenc	xmm11, xmm11, xmm4
1609        vmovdqu	xmm4, OWORD PTR [r8+32]
1610        vaesenc	xmm8, xmm8, xmm4
1611        vaesenc	xmm9, xmm9, xmm4
1612        vaesenc	xmm10, xmm10, xmm4
1613        vaesenc	xmm11, xmm11, xmm4
1614        vmovdqu	xmm4, OWORD PTR [r8+48]
1615        vaesenc	xmm8, xmm8, xmm4
1616        vaesenc	xmm9, xmm9, xmm4
1617        vaesenc	xmm10, xmm10, xmm4
1618        vaesenc	xmm11, xmm11, xmm4
1619        vmovdqu	xmm4, OWORD PTR [r8+64]
1620        vaesenc	xmm8, xmm8, xmm4
1621        vaesenc	xmm9, xmm9, xmm4
1622        vaesenc	xmm10, xmm10, xmm4
1623        vaesenc	xmm11, xmm11, xmm4
1624        vmovdqu	xmm4, OWORD PTR [r8+80]
1625        vaesenc	xmm8, xmm8, xmm4
1626        vaesenc	xmm9, xmm9, xmm4
1627        vaesenc	xmm10, xmm10, xmm4
1628        vaesenc	xmm11, xmm11, xmm4
1629        vmovdqu	xmm4, OWORD PTR [r8+96]
1630        vaesenc	xmm8, xmm8, xmm4
1631        vaesenc	xmm9, xmm9, xmm4
1632        vaesenc	xmm10, xmm10, xmm4
1633        vaesenc	xmm11, xmm11, xmm4
1634        vmovdqu	xmm4, OWORD PTR [r8+112]
1635        vaesenc	xmm8, xmm8, xmm4
1636        vaesenc	xmm9, xmm9, xmm4
1637        vaesenc	xmm10, xmm10, xmm4
1638        vaesenc	xmm11, xmm11, xmm4
1639        vmovdqu	xmm4, OWORD PTR [r8+128]
1640        vaesenc	xmm8, xmm8, xmm4
1641        vaesenc	xmm9, xmm9, xmm4
1642        vaesenc	xmm10, xmm10, xmm4
1643        vaesenc	xmm11, xmm11, xmm4
1644        vmovdqu	xmm4, OWORD PTR [r8+144]
1645        vaesenc	xmm8, xmm8, xmm4
1646        vaesenc	xmm9, xmm9, xmm4
1647        vaesenc	xmm10, xmm10, xmm4
1648        vaesenc	xmm11, xmm11, xmm4
1649        cmp	r10d, 11
1650        vmovdqu	xmm4, OWORD PTR [r8+160]
1651        jl	L_AES_XTS_encrypt_avx1_aes_enc_64_aes_enc_block_last
1652        vaesenc	xmm8, xmm8, xmm4
1653        vaesenc	xmm9, xmm9, xmm4
1654        vaesenc	xmm10, xmm10, xmm4
1655        vaesenc	xmm11, xmm11, xmm4
1656        vmovdqu	xmm4, OWORD PTR [r8+176]
1657        vaesenc	xmm8, xmm8, xmm4
1658        vaesenc	xmm9, xmm9, xmm4
1659        vaesenc	xmm10, xmm10, xmm4
1660        vaesenc	xmm11, xmm11, xmm4
1661        cmp	r10d, 13
1662        vmovdqu	xmm4, OWORD PTR [r8+192]
1663        jl	L_AES_XTS_encrypt_avx1_aes_enc_64_aes_enc_block_last
1664        vaesenc	xmm8, xmm8, xmm4
1665        vaesenc	xmm9, xmm9, xmm4
1666        vaesenc	xmm10, xmm10, xmm4
1667        vaesenc	xmm11, xmm11, xmm4
1668        vmovdqu	xmm4, OWORD PTR [r8+208]
1669        vaesenc	xmm8, xmm8, xmm4
1670        vaesenc	xmm9, xmm9, xmm4
1671        vaesenc	xmm10, xmm10, xmm4
1672        vaesenc	xmm11, xmm11, xmm4
1673        vmovdqu	xmm4, OWORD PTR [r8+224]
1674L_AES_XTS_encrypt_avx1_aes_enc_64_aes_enc_block_last:
1675        vaesenclast	xmm8, xmm8, xmm4
1676        vaesenclast	xmm9, xmm9, xmm4
1677        vaesenclast	xmm10, xmm10, xmm4
1678        vaesenclast	xmm11, xmm11, xmm4
1679        vpxor	xmm8, xmm8, xmm0
1680        vpxor	xmm9, xmm9, xmm1
1681        vpxor	xmm10, xmm10, xmm2
1682        vpxor	xmm11, xmm11, xmm3
1683        vmovdqu	OWORD PTR [rdx], xmm8
1684        vmovdqu	OWORD PTR [rdx+16], xmm9
1685        vmovdqu	OWORD PTR [rdx+32], xmm10
1686        vmovdqu	OWORD PTR [rdx+48], xmm11
1687        vpsrad	xmm4, xmm3, 31
1688        vpslld	xmm0, xmm3, 1
1689        vpshufd	xmm4, xmm4, 147
1690        vpand	xmm4, xmm4, xmm12
1691        vpxor	xmm0, xmm0, xmm4
1692        add	r13d, 64
1693        cmp	r13d, r11d
1694        jl	L_AES_XTS_encrypt_avx1_enc_64
1695L_AES_XTS_encrypt_avx1_done_64:
1696        cmp	r13d, eax
1697        mov	r11d, eax
1698        je	L_AES_XTS_encrypt_avx1_done_enc
1699        sub	r11d, r13d
1700        cmp	r11d, 16
1701        mov	r11d, eax
1702        jl	L_AES_XTS_encrypt_avx1_last_15
1703        and	r11d, 4294967280
1704        ; 16 bytes of input
1705L_AES_XTS_encrypt_avx1_enc_16:
1706        lea	rcx, QWORD PTR [rdi+r13]
1707        vmovdqu	xmm8, OWORD PTR [rcx]
1708        vpxor	xmm8, xmm8, xmm0
1709        ; aes_enc_block
1710        vpxor	xmm8, xmm8, [r8]
1711        vmovdqu	xmm5, OWORD PTR [r8+16]
1712        vaesenc	xmm8, xmm8, xmm5
1713        vmovdqu	xmm5, OWORD PTR [r8+32]
1714        vaesenc	xmm8, xmm8, xmm5
1715        vmovdqu	xmm5, OWORD PTR [r8+48]
1716        vaesenc	xmm8, xmm8, xmm5
1717        vmovdqu	xmm5, OWORD PTR [r8+64]
1718        vaesenc	xmm8, xmm8, xmm5
1719        vmovdqu	xmm5, OWORD PTR [r8+80]
1720        vaesenc	xmm8, xmm8, xmm5
1721        vmovdqu	xmm5, OWORD PTR [r8+96]
1722        vaesenc	xmm8, xmm8, xmm5
1723        vmovdqu	xmm5, OWORD PTR [r8+112]
1724        vaesenc	xmm8, xmm8, xmm5
1725        vmovdqu	xmm5, OWORD PTR [r8+128]
1726        vaesenc	xmm8, xmm8, xmm5
1727        vmovdqu	xmm5, OWORD PTR [r8+144]
1728        vaesenc	xmm8, xmm8, xmm5
1729        cmp	r10d, 11
1730        vmovdqu	xmm5, OWORD PTR [r8+160]
1731        jl	L_AES_XTS_encrypt_avx1_aes_enc_block_last
1732        vaesenc	xmm8, xmm8, xmm5
1733        vmovdqu	xmm6, OWORD PTR [r8+176]
1734        vaesenc	xmm8, xmm8, xmm6
1735        cmp	r10d, 13
1736        vmovdqu	xmm5, OWORD PTR [r8+192]
1737        jl	L_AES_XTS_encrypt_avx1_aes_enc_block_last
1738        vaesenc	xmm8, xmm8, xmm5
1739        vmovdqu	xmm6, OWORD PTR [r8+208]
1740        vaesenc	xmm8, xmm8, xmm6
1741        vmovdqu	xmm5, OWORD PTR [r8+224]
1742L_AES_XTS_encrypt_avx1_aes_enc_block_last:
1743        vaesenclast	xmm8, xmm8, xmm5
1744        vpxor	xmm8, xmm8, xmm0
1745        lea	rcx, QWORD PTR [rsi+r13]
1746        vmovdqu	OWORD PTR [rcx], xmm8
1747        vpsrad	xmm4, xmm0, 31
1748        vpslld	xmm0, xmm0, 1
1749        vpshufd	xmm4, xmm4, 147
1750        vpand	xmm4, xmm4, xmm12
1751        vpxor	xmm0, xmm0, xmm4
1752        add	r13d, 16
1753        cmp	r13d, r11d
1754        jl	L_AES_XTS_encrypt_avx1_enc_16
1755        cmp	r13d, eax
1756        je	L_AES_XTS_encrypt_avx1_done_enc
1757L_AES_XTS_encrypt_avx1_last_15:
1758        sub	r13, 16
1759        lea	rcx, QWORD PTR [rsi+r13]
1760        vmovdqu	xmm8, OWORD PTR [rcx]
1761        add	r13, 16
1762        vmovdqu	OWORD PTR [rsp], xmm8
1763        xor	rdx, rdx
1764L_AES_XTS_encrypt_avx1_last_15_byte_loop:
1765        mov	r11b, BYTE PTR [rsp+rdx]
1766        mov	cl, BYTE PTR [rdi+r13]
1767        mov	BYTE PTR [rsi+r13], r11b
1768        mov	BYTE PTR [rsp+rdx], cl
1769        inc	r13d
1770        inc	edx
1771        cmp	r13d, eax
1772        jl	L_AES_XTS_encrypt_avx1_last_15_byte_loop
1773        sub	r13, rdx
1774        vmovdqu	xmm8, OWORD PTR [rsp]
1775        sub	r13, 16
1776        vpxor	xmm8, xmm8, xmm0
1777        ; aes_enc_block
1778        vpxor	xmm8, xmm8, [r8]
1779        vmovdqu	xmm5, OWORD PTR [r8+16]
1780        vaesenc	xmm8, xmm8, xmm5
1781        vmovdqu	xmm5, OWORD PTR [r8+32]
1782        vaesenc	xmm8, xmm8, xmm5
1783        vmovdqu	xmm5, OWORD PTR [r8+48]
1784        vaesenc	xmm8, xmm8, xmm5
1785        vmovdqu	xmm5, OWORD PTR [r8+64]
1786        vaesenc	xmm8, xmm8, xmm5
1787        vmovdqu	xmm5, OWORD PTR [r8+80]
1788        vaesenc	xmm8, xmm8, xmm5
1789        vmovdqu	xmm5, OWORD PTR [r8+96]
1790        vaesenc	xmm8, xmm8, xmm5
1791        vmovdqu	xmm5, OWORD PTR [r8+112]
1792        vaesenc	xmm8, xmm8, xmm5
1793        vmovdqu	xmm5, OWORD PTR [r8+128]
1794        vaesenc	xmm8, xmm8, xmm5
1795        vmovdqu	xmm5, OWORD PTR [r8+144]
1796        vaesenc	xmm8, xmm8, xmm5
1797        cmp	r10d, 11
1798        vmovdqu	xmm5, OWORD PTR [r8+160]
1799        jl	L_AES_XTS_encrypt_avx1_last_15_aes_enc_block_last
1800        vaesenc	xmm8, xmm8, xmm5
1801        vmovdqu	xmm6, OWORD PTR [r8+176]
1802        vaesenc	xmm8, xmm8, xmm6
1803        cmp	r10d, 13
1804        vmovdqu	xmm5, OWORD PTR [r8+192]
1805        jl	L_AES_XTS_encrypt_avx1_last_15_aes_enc_block_last
1806        vaesenc	xmm8, xmm8, xmm5
1807        vmovdqu	xmm6, OWORD PTR [r8+208]
1808        vaesenc	xmm8, xmm8, xmm6
1809        vmovdqu	xmm5, OWORD PTR [r8+224]
1810L_AES_XTS_encrypt_avx1_last_15_aes_enc_block_last:
1811        vaesenclast	xmm8, xmm8, xmm5
1812        vpxor	xmm8, xmm8, xmm0
1813        lea	rcx, QWORD PTR [rsi+r13]
1814        vmovdqu	OWORD PTR [rcx], xmm8
1815L_AES_XTS_encrypt_avx1_done_enc:
1816        vmovdqu	xmm6, OWORD PTR [rsp+64]
1817        vmovdqu	xmm7, OWORD PTR [rsp+80]
1818        vmovdqu	xmm8, OWORD PTR [rsp+96]
1819        vmovdqu	xmm9, OWORD PTR [rsp+112]
1820        vmovdqu	xmm10, OWORD PTR [rsp+128]
1821        vmovdqu	xmm11, OWORD PTR [rsp+144]
1822        vmovdqu	xmm12, OWORD PTR [rsp+160]
1823        add	rsp, 176
1824        pop	r13
1825        pop	r12
1826        pop	rsi
1827        pop	rdi
1828        ret
1829AES_XTS_encrypt_avx1 ENDP
1830_TEXT ENDS
1831_TEXT SEGMENT READONLY PARA
1832AES_XTS_encrypt_update_avx1 PROC
1833        push	rdi
1834        push	rsi
1835        push	r12
1836        mov	rdi, rcx
1837        mov	rsi, rdx
1838        mov	rax, r8
1839        mov	r10, r9
1840        mov	r8, QWORD PTR [rsp+64]
1841        mov	r9d, DWORD PTR [rsp+72]
1842        sub	rsp, 176
1843        vmovdqu	OWORD PTR [rsp+64], xmm6
1844        vmovdqu	OWORD PTR [rsp+80], xmm7
1845        vmovdqu	OWORD PTR [rsp+96], xmm8
1846        vmovdqu	OWORD PTR [rsp+112], xmm9
1847        vmovdqu	OWORD PTR [rsp+128], xmm10
1848        vmovdqu	OWORD PTR [rsp+144], xmm11
1849        vmovdqu	OWORD PTR [rsp+160], xmm12
1850        vmovdqu	xmm12, OWORD PTR L_avx1_aes_xts_gc_xts
1851        vmovdqu	xmm0, OWORD PTR [r8]
1852        xor	r12d, r12d
1853        cmp	eax, 64
1854        mov	r11d, eax
1855        jl	L_AES_XTS_encrypt_update_avx1_done_64
1856        and	r11d, 4294967232
1857L_AES_XTS_encrypt_update_avx1_enc_64:
1858        ; 64 bytes of input
1859        ; aes_enc_64
1860        lea	rcx, QWORD PTR [rdi+r12]
1861        lea	rdx, QWORD PTR [rsi+r12]
1862        vmovdqu	xmm8, OWORD PTR [rcx]
1863        vmovdqu	xmm9, OWORD PTR [rcx+16]
1864        vmovdqu	xmm10, OWORD PTR [rcx+32]
1865        vmovdqu	xmm11, OWORD PTR [rcx+48]
1866        vpsrad	xmm4, xmm0, 31
1867        vpslld	xmm1, xmm0, 1
1868        vpshufd	xmm4, xmm4, 147
1869        vpand	xmm4, xmm4, xmm12
1870        vpxor	xmm1, xmm1, xmm4
1871        vpsrad	xmm4, xmm1, 31
1872        vpslld	xmm2, xmm1, 1
1873        vpshufd	xmm4, xmm4, 147
1874        vpand	xmm4, xmm4, xmm12
1875        vpxor	xmm2, xmm2, xmm4
1876        vpsrad	xmm4, xmm2, 31
1877        vpslld	xmm3, xmm2, 1
1878        vpshufd	xmm4, xmm4, 147
1879        vpand	xmm4, xmm4, xmm12
1880        vpxor	xmm3, xmm3, xmm4
1881        vpxor	xmm8, xmm8, xmm0
1882        vpxor	xmm9, xmm9, xmm1
1883        vpxor	xmm10, xmm10, xmm2
1884        vpxor	xmm11, xmm11, xmm3
1885        ; aes_enc_block
1886        vmovdqu	xmm4, OWORD PTR [r10]
1887        vpxor	xmm8, xmm8, xmm4
1888        vpxor	xmm9, xmm9, xmm4
1889        vpxor	xmm10, xmm10, xmm4
1890        vpxor	xmm11, xmm11, xmm4
1891        vmovdqu	xmm4, OWORD PTR [r10+16]
1892        vaesenc	xmm8, xmm8, xmm4
1893        vaesenc	xmm9, xmm9, xmm4
1894        vaesenc	xmm10, xmm10, xmm4
1895        vaesenc	xmm11, xmm11, xmm4
1896        vmovdqu	xmm4, OWORD PTR [r10+32]
1897        vaesenc	xmm8, xmm8, xmm4
1898        vaesenc	xmm9, xmm9, xmm4
1899        vaesenc	xmm10, xmm10, xmm4
1900        vaesenc	xmm11, xmm11, xmm4
1901        vmovdqu	xmm4, OWORD PTR [r10+48]
1902        vaesenc	xmm8, xmm8, xmm4
1903        vaesenc	xmm9, xmm9, xmm4
1904        vaesenc	xmm10, xmm10, xmm4
1905        vaesenc	xmm11, xmm11, xmm4
1906        vmovdqu	xmm4, OWORD PTR [r10+64]
1907        vaesenc	xmm8, xmm8, xmm4
1908        vaesenc	xmm9, xmm9, xmm4
1909        vaesenc	xmm10, xmm10, xmm4
1910        vaesenc	xmm11, xmm11, xmm4
1911        vmovdqu	xmm4, OWORD PTR [r10+80]
1912        vaesenc	xmm8, xmm8, xmm4
1913        vaesenc	xmm9, xmm9, xmm4
1914        vaesenc	xmm10, xmm10, xmm4
1915        vaesenc	xmm11, xmm11, xmm4
1916        vmovdqu	xmm4, OWORD PTR [r10+96]
1917        vaesenc	xmm8, xmm8, xmm4
1918        vaesenc	xmm9, xmm9, xmm4
1919        vaesenc	xmm10, xmm10, xmm4
1920        vaesenc	xmm11, xmm11, xmm4
1921        vmovdqu	xmm4, OWORD PTR [r10+112]
1922        vaesenc	xmm8, xmm8, xmm4
1923        vaesenc	xmm9, xmm9, xmm4
1924        vaesenc	xmm10, xmm10, xmm4
1925        vaesenc	xmm11, xmm11, xmm4
1926        vmovdqu	xmm4, OWORD PTR [r10+128]
1927        vaesenc	xmm8, xmm8, xmm4
1928        vaesenc	xmm9, xmm9, xmm4
1929        vaesenc	xmm10, xmm10, xmm4
1930        vaesenc	xmm11, xmm11, xmm4
1931        vmovdqu	xmm4, OWORD PTR [r10+144]
1932        vaesenc	xmm8, xmm8, xmm4
1933        vaesenc	xmm9, xmm9, xmm4
1934        vaesenc	xmm10, xmm10, xmm4
1935        vaesenc	xmm11, xmm11, xmm4
1936        cmp	r9d, 11
1937        vmovdqu	xmm4, OWORD PTR [r10+160]
1938        jl	L_AES_XTS_encrypt_update_avx1_aes_enc_64_aes_enc_block_last
1939        vaesenc	xmm8, xmm8, xmm4
1940        vaesenc	xmm9, xmm9, xmm4
1941        vaesenc	xmm10, xmm10, xmm4
1942        vaesenc	xmm11, xmm11, xmm4
1943        vmovdqu	xmm4, OWORD PTR [r10+176]
1944        vaesenc	xmm8, xmm8, xmm4
1945        vaesenc	xmm9, xmm9, xmm4
1946        vaesenc	xmm10, xmm10, xmm4
1947        vaesenc	xmm11, xmm11, xmm4
1948        cmp	r9d, 13
1949        vmovdqu	xmm4, OWORD PTR [r10+192]
1950        jl	L_AES_XTS_encrypt_update_avx1_aes_enc_64_aes_enc_block_last
1951        vaesenc	xmm8, xmm8, xmm4
1952        vaesenc	xmm9, xmm9, xmm4
1953        vaesenc	xmm10, xmm10, xmm4
1954        vaesenc	xmm11, xmm11, xmm4
1955        vmovdqu	xmm4, OWORD PTR [r10+208]
1956        vaesenc	xmm8, xmm8, xmm4
1957        vaesenc	xmm9, xmm9, xmm4
1958        vaesenc	xmm10, xmm10, xmm4
1959        vaesenc	xmm11, xmm11, xmm4
1960        vmovdqu	xmm4, OWORD PTR [r10+224]
1961L_AES_XTS_encrypt_update_avx1_aes_enc_64_aes_enc_block_last:
1962        vaesenclast	xmm8, xmm8, xmm4
1963        vaesenclast	xmm9, xmm9, xmm4
1964        vaesenclast	xmm10, xmm10, xmm4
1965        vaesenclast	xmm11, xmm11, xmm4
1966        vpxor	xmm8, xmm8, xmm0
1967        vpxor	xmm9, xmm9, xmm1
1968        vpxor	xmm10, xmm10, xmm2
1969        vpxor	xmm11, xmm11, xmm3
1970        vmovdqu	OWORD PTR [rdx], xmm8
1971        vmovdqu	OWORD PTR [rdx+16], xmm9
1972        vmovdqu	OWORD PTR [rdx+32], xmm10
1973        vmovdqu	OWORD PTR [rdx+48], xmm11
1974        vpsrad	xmm4, xmm3, 31
1975        vpslld	xmm0, xmm3, 1
1976        vpshufd	xmm4, xmm4, 147
1977        vpand	xmm4, xmm4, xmm12
1978        vpxor	xmm0, xmm0, xmm4
1979        add	r12d, 64
1980        cmp	r12d, r11d
1981        jl	L_AES_XTS_encrypt_update_avx1_enc_64
1982L_AES_XTS_encrypt_update_avx1_done_64:
1983        cmp	r12d, eax
1984        mov	r11d, eax
1985        je	L_AES_XTS_encrypt_update_avx1_done_enc
1986        sub	r11d, r12d
1987        cmp	r11d, 16
1988        mov	r11d, eax
1989        jl	L_AES_XTS_encrypt_update_avx1_last_15
1990        and	r11d, 4294967280
1991        ; 16 bytes of input
1992L_AES_XTS_encrypt_update_avx1_enc_16:
1993        lea	rcx, QWORD PTR [rdi+r12]
1994        vmovdqu	xmm8, OWORD PTR [rcx]
1995        vpxor	xmm8, xmm8, xmm0
1996        ; aes_enc_block
1997        vpxor	xmm8, xmm8, [r10]
1998        vmovdqu	xmm5, OWORD PTR [r10+16]
1999        vaesenc	xmm8, xmm8, xmm5
2000        vmovdqu	xmm5, OWORD PTR [r10+32]
2001        vaesenc	xmm8, xmm8, xmm5
2002        vmovdqu	xmm5, OWORD PTR [r10+48]
2003        vaesenc	xmm8, xmm8, xmm5
2004        vmovdqu	xmm5, OWORD PTR [r10+64]
2005        vaesenc	xmm8, xmm8, xmm5
2006        vmovdqu	xmm5, OWORD PTR [r10+80]
2007        vaesenc	xmm8, xmm8, xmm5
2008        vmovdqu	xmm5, OWORD PTR [r10+96]
2009        vaesenc	xmm8, xmm8, xmm5
2010        vmovdqu	xmm5, OWORD PTR [r10+112]
2011        vaesenc	xmm8, xmm8, xmm5
2012        vmovdqu	xmm5, OWORD PTR [r10+128]
2013        vaesenc	xmm8, xmm8, xmm5
2014        vmovdqu	xmm5, OWORD PTR [r10+144]
2015        vaesenc	xmm8, xmm8, xmm5
2016        cmp	r9d, 11
2017        vmovdqu	xmm5, OWORD PTR [r10+160]
2018        jl	L_AES_XTS_encrypt_update_avx1_aes_enc_block_last
2019        vaesenc	xmm8, xmm8, xmm5
2020        vmovdqu	xmm6, OWORD PTR [r10+176]
2021        vaesenc	xmm8, xmm8, xmm6
2022        cmp	r9d, 13
2023        vmovdqu	xmm5, OWORD PTR [r10+192]
2024        jl	L_AES_XTS_encrypt_update_avx1_aes_enc_block_last
2025        vaesenc	xmm8, xmm8, xmm5
2026        vmovdqu	xmm6, OWORD PTR [r10+208]
2027        vaesenc	xmm8, xmm8, xmm6
2028        vmovdqu	xmm5, OWORD PTR [r10+224]
2029L_AES_XTS_encrypt_update_avx1_aes_enc_block_last:
2030        vaesenclast	xmm8, xmm8, xmm5
2031        vpxor	xmm8, xmm8, xmm0
2032        lea	rcx, QWORD PTR [rsi+r12]
2033        vmovdqu	OWORD PTR [rcx], xmm8
2034        vpsrad	xmm4, xmm0, 31
2035        vpslld	xmm0, xmm0, 1
2036        vpshufd	xmm4, xmm4, 147
2037        vpand	xmm4, xmm4, xmm12
2038        vpxor	xmm0, xmm0, xmm4
2039        add	r12d, 16
2040        cmp	r12d, r11d
2041        jl	L_AES_XTS_encrypt_update_avx1_enc_16
2042        cmp	r12d, eax
2043        je	L_AES_XTS_encrypt_update_avx1_done_enc
2044L_AES_XTS_encrypt_update_avx1_last_15:
2045        sub	r12, 16
2046        lea	rcx, QWORD PTR [rsi+r12]
2047        vmovdqu	xmm8, OWORD PTR [rcx]
2048        add	r12, 16
2049        vmovdqu	OWORD PTR [rsp], xmm8
2050        xor	rdx, rdx
2051L_AES_XTS_encrypt_update_avx1_last_15_byte_loop:
2052        mov	r11b, BYTE PTR [rsp+rdx]
2053        mov	cl, BYTE PTR [rdi+r12]
2054        mov	BYTE PTR [rsi+r12], r11b
2055        mov	BYTE PTR [rsp+rdx], cl
2056        inc	r12d
2057        inc	edx
2058        cmp	r12d, eax
2059        jl	L_AES_XTS_encrypt_update_avx1_last_15_byte_loop
2060        sub	r12, rdx
2061        vmovdqu	xmm8, OWORD PTR [rsp]
2062        sub	r12, 16
2063        vpxor	xmm8, xmm8, xmm0
2064        ; aes_enc_block
2065        vpxor	xmm8, xmm8, [r10]
2066        vmovdqu	xmm5, OWORD PTR [r10+16]
2067        vaesenc	xmm8, xmm8, xmm5
2068        vmovdqu	xmm5, OWORD PTR [r10+32]
2069        vaesenc	xmm8, xmm8, xmm5
2070        vmovdqu	xmm5, OWORD PTR [r10+48]
2071        vaesenc	xmm8, xmm8, xmm5
2072        vmovdqu	xmm5, OWORD PTR [r10+64]
2073        vaesenc	xmm8, xmm8, xmm5
2074        vmovdqu	xmm5, OWORD PTR [r10+80]
2075        vaesenc	xmm8, xmm8, xmm5
2076        vmovdqu	xmm5, OWORD PTR [r10+96]
2077        vaesenc	xmm8, xmm8, xmm5
2078        vmovdqu	xmm5, OWORD PTR [r10+112]
2079        vaesenc	xmm8, xmm8, xmm5
2080        vmovdqu	xmm5, OWORD PTR [r10+128]
2081        vaesenc	xmm8, xmm8, xmm5
2082        vmovdqu	xmm5, OWORD PTR [r10+144]
2083        vaesenc	xmm8, xmm8, xmm5
2084        cmp	r9d, 11
2085        vmovdqu	xmm5, OWORD PTR [r10+160]
2086        jl	L_AES_XTS_encrypt_update_avx1_last_15_aes_enc_block_last
2087        vaesenc	xmm8, xmm8, xmm5
2088        vmovdqu	xmm6, OWORD PTR [r10+176]
2089        vaesenc	xmm8, xmm8, xmm6
2090        cmp	r9d, 13
2091        vmovdqu	xmm5, OWORD PTR [r10+192]
2092        jl	L_AES_XTS_encrypt_update_avx1_last_15_aes_enc_block_last
2093        vaesenc	xmm8, xmm8, xmm5
2094        vmovdqu	xmm6, OWORD PTR [r10+208]
2095        vaesenc	xmm8, xmm8, xmm6
2096        vmovdqu	xmm5, OWORD PTR [r10+224]
2097L_AES_XTS_encrypt_update_avx1_last_15_aes_enc_block_last:
2098        vaesenclast	xmm8, xmm8, xmm5
2099        vpxor	xmm8, xmm8, xmm0
2100        lea	rcx, QWORD PTR [rsi+r12]
2101        vmovdqu	OWORD PTR [rcx], xmm8
2102L_AES_XTS_encrypt_update_avx1_done_enc:
2103        vmovdqu	OWORD PTR [r8], xmm0
2104        vmovdqu	xmm6, OWORD PTR [rsp+64]
2105        vmovdqu	xmm7, OWORD PTR [rsp+80]
2106        vmovdqu	xmm8, OWORD PTR [rsp+96]
2107        vmovdqu	xmm9, OWORD PTR [rsp+112]
2108        vmovdqu	xmm10, OWORD PTR [rsp+128]
2109        vmovdqu	xmm11, OWORD PTR [rsp+144]
2110        vmovdqu	xmm12, OWORD PTR [rsp+160]
2111        add	rsp, 176
2112        pop	r12
2113        pop	rsi
2114        pop	rdi
2115        ret
2116AES_XTS_encrypt_update_avx1 ENDP
2117_TEXT ENDS
2118_TEXT SEGMENT READONLY PARA
2119AES_XTS_decrypt_avx1 PROC
2120        push	rdi
2121        push	rsi
2122        push	r12
2123        push	r13
2124        mov	rdi, rcx
2125        mov	rsi, rdx
2126        mov	rax, r8
2127        mov	r12, r9
2128        mov	r8, QWORD PTR [rsp+72]
2129        mov	r9, QWORD PTR [rsp+80]
2130        mov	r10d, DWORD PTR [rsp+88]
2131        sub	rsp, 128
2132        vmovdqu	OWORD PTR [rsp+16], xmm6
2133        vmovdqu	OWORD PTR [rsp+32], xmm7
2134        vmovdqu	OWORD PTR [rsp+48], xmm8
2135        vmovdqu	OWORD PTR [rsp+64], xmm9
2136        vmovdqu	OWORD PTR [rsp+80], xmm10
2137        vmovdqu	OWORD PTR [rsp+96], xmm11
2138        vmovdqu	OWORD PTR [rsp+112], xmm12
2139        vmovdqu	xmm12, OWORD PTR L_avx1_aes_xts_gc_xts
2140        vmovdqu	xmm0, OWORD PTR [r12]
2141        ; aes_enc_block
2142        vpxor	xmm0, xmm0, [r9]
2143        vmovdqu	xmm5, OWORD PTR [r9+16]
2144        vaesenc	xmm0, xmm0, xmm5
2145        vmovdqu	xmm5, OWORD PTR [r9+32]
2146        vaesenc	xmm0, xmm0, xmm5
2147        vmovdqu	xmm5, OWORD PTR [r9+48]
2148        vaesenc	xmm0, xmm0, xmm5
2149        vmovdqu	xmm5, OWORD PTR [r9+64]
2150        vaesenc	xmm0, xmm0, xmm5
2151        vmovdqu	xmm5, OWORD PTR [r9+80]
2152        vaesenc	xmm0, xmm0, xmm5
2153        vmovdqu	xmm5, OWORD PTR [r9+96]
2154        vaesenc	xmm0, xmm0, xmm5
2155        vmovdqu	xmm5, OWORD PTR [r9+112]
2156        vaesenc	xmm0, xmm0, xmm5
2157        vmovdqu	xmm5, OWORD PTR [r9+128]
2158        vaesenc	xmm0, xmm0, xmm5
2159        vmovdqu	xmm5, OWORD PTR [r9+144]
2160        vaesenc	xmm0, xmm0, xmm5
2161        cmp	r10d, 11
2162        vmovdqu	xmm5, OWORD PTR [r9+160]
2163        jl	L_AES_XTS_decrypt_avx1_tweak_aes_enc_block_last
2164        vaesenc	xmm0, xmm0, xmm5
2165        vmovdqu	xmm6, OWORD PTR [r9+176]
2166        vaesenc	xmm0, xmm0, xmm6
2167        cmp	r10d, 13
2168        vmovdqu	xmm5, OWORD PTR [r9+192]
2169        jl	L_AES_XTS_decrypt_avx1_tweak_aes_enc_block_last
2170        vaesenc	xmm0, xmm0, xmm5
2171        vmovdqu	xmm6, OWORD PTR [r9+208]
2172        vaesenc	xmm0, xmm0, xmm6
2173        vmovdqu	xmm5, OWORD PTR [r9+224]
2174L_AES_XTS_decrypt_avx1_tweak_aes_enc_block_last:
2175        vaesenclast	xmm0, xmm0, xmm5
2176        xor	r13d, r13d
2177        mov	r11d, eax
2178        and	r11d, 4294967280
2179        cmp	r11d, eax
2180        je	L_AES_XTS_decrypt_avx1_mul16_64
2181        sub	r11d, 16
2182        cmp	r11d, 16
2183        jl	L_AES_XTS_decrypt_avx1_last_31_start
2184L_AES_XTS_decrypt_avx1_mul16_64:
2185        cmp	r11d, 64
2186        jl	L_AES_XTS_decrypt_avx1_done_64
2187        and	r11d, 4294967232
2188L_AES_XTS_decrypt_avx1_dec_64:
2189        ; 64 bytes of input
2190        ; aes_dec_64
2191        lea	rcx, QWORD PTR [rdi+r13]
2192        lea	rdx, QWORD PTR [rsi+r13]
2193        vmovdqu	xmm8, OWORD PTR [rcx]
2194        vmovdqu	xmm9, OWORD PTR [rcx+16]
2195        vmovdqu	xmm10, OWORD PTR [rcx+32]
2196        vmovdqu	xmm11, OWORD PTR [rcx+48]
2197        vpsrad	xmm4, xmm0, 31
2198        vpslld	xmm1, xmm0, 1
2199        vpshufd	xmm4, xmm4, 147
2200        vpand	xmm4, xmm4, xmm12
2201        vpxor	xmm1, xmm1, xmm4
2202        vpsrad	xmm4, xmm1, 31
2203        vpslld	xmm2, xmm1, 1
2204        vpshufd	xmm4, xmm4, 147
2205        vpand	xmm4, xmm4, xmm12
2206        vpxor	xmm2, xmm2, xmm4
2207        vpsrad	xmm4, xmm2, 31
2208        vpslld	xmm3, xmm2, 1
2209        vpshufd	xmm4, xmm4, 147
2210        vpand	xmm4, xmm4, xmm12
2211        vpxor	xmm3, xmm3, xmm4
2212        vpxor	xmm8, xmm8, xmm0
2213        vpxor	xmm9, xmm9, xmm1
2214        vpxor	xmm10, xmm10, xmm2
2215        vpxor	xmm11, xmm11, xmm3
2216        ; aes_dec_block
2217        vmovdqu	xmm4, OWORD PTR [r8]
2218        vpxor	xmm8, xmm8, xmm4
2219        vpxor	xmm9, xmm9, xmm4
2220        vpxor	xmm10, xmm10, xmm4
2221        vpxor	xmm11, xmm11, xmm4
2222        vmovdqu	xmm4, OWORD PTR [r8+16]
2223        vaesdec	xmm8, xmm8, xmm4
2224        vaesdec	xmm9, xmm9, xmm4
2225        vaesdec	xmm10, xmm10, xmm4
2226        vaesdec	xmm11, xmm11, xmm4
2227        vmovdqu	xmm4, OWORD PTR [r8+32]
2228        vaesdec	xmm8, xmm8, xmm4
2229        vaesdec	xmm9, xmm9, xmm4
2230        vaesdec	xmm10, xmm10, xmm4
2231        vaesdec	xmm11, xmm11, xmm4
2232        vmovdqu	xmm4, OWORD PTR [r8+48]
2233        vaesdec	xmm8, xmm8, xmm4
2234        vaesdec	xmm9, xmm9, xmm4
2235        vaesdec	xmm10, xmm10, xmm4
2236        vaesdec	xmm11, xmm11, xmm4
2237        vmovdqu	xmm4, OWORD PTR [r8+64]
2238        vaesdec	xmm8, xmm8, xmm4
2239        vaesdec	xmm9, xmm9, xmm4
2240        vaesdec	xmm10, xmm10, xmm4
2241        vaesdec	xmm11, xmm11, xmm4
2242        vmovdqu	xmm4, OWORD PTR [r8+80]
2243        vaesdec	xmm8, xmm8, xmm4
2244        vaesdec	xmm9, xmm9, xmm4
2245        vaesdec	xmm10, xmm10, xmm4
2246        vaesdec	xmm11, xmm11, xmm4
2247        vmovdqu	xmm4, OWORD PTR [r8+96]
2248        vaesdec	xmm8, xmm8, xmm4
2249        vaesdec	xmm9, xmm9, xmm4
2250        vaesdec	xmm10, xmm10, xmm4
2251        vaesdec	xmm11, xmm11, xmm4
2252        vmovdqu	xmm4, OWORD PTR [r8+112]
2253        vaesdec	xmm8, xmm8, xmm4
2254        vaesdec	xmm9, xmm9, xmm4
2255        vaesdec	xmm10, xmm10, xmm4
2256        vaesdec	xmm11, xmm11, xmm4
2257        vmovdqu	xmm4, OWORD PTR [r8+128]
2258        vaesdec	xmm8, xmm8, xmm4
2259        vaesdec	xmm9, xmm9, xmm4
2260        vaesdec	xmm10, xmm10, xmm4
2261        vaesdec	xmm11, xmm11, xmm4
2262        vmovdqu	xmm4, OWORD PTR [r8+144]
2263        vaesdec	xmm8, xmm8, xmm4
2264        vaesdec	xmm9, xmm9, xmm4
2265        vaesdec	xmm10, xmm10, xmm4
2266        vaesdec	xmm11, xmm11, xmm4
2267        cmp	r10d, 11
2268        vmovdqu	xmm4, OWORD PTR [r8+160]
2269        jl	L_AES_XTS_decrypt_avx1_aes_dec_64_aes_dec_block_last
2270        vaesdec	xmm8, xmm8, xmm4
2271        vaesdec	xmm9, xmm9, xmm4
2272        vaesdec	xmm10, xmm10, xmm4
2273        vaesdec	xmm11, xmm11, xmm4
2274        vmovdqu	xmm4, OWORD PTR [r8+176]
2275        vaesdec	xmm8, xmm8, xmm4
2276        vaesdec	xmm9, xmm9, xmm4
2277        vaesdec	xmm10, xmm10, xmm4
2278        vaesdec	xmm11, xmm11, xmm4
2279        cmp	r10d, 13
2280        vmovdqu	xmm4, OWORD PTR [r8+192]
2281        jl	L_AES_XTS_decrypt_avx1_aes_dec_64_aes_dec_block_last
2282        vaesdec	xmm8, xmm8, xmm4
2283        vaesdec	xmm9, xmm9, xmm4
2284        vaesdec	xmm10, xmm10, xmm4
2285        vaesdec	xmm11, xmm11, xmm4
2286        vmovdqu	xmm4, OWORD PTR [r8+208]
2287        vaesdec	xmm8, xmm8, xmm4
2288        vaesdec	xmm9, xmm9, xmm4
2289        vaesdec	xmm10, xmm10, xmm4
2290        vaesdec	xmm11, xmm11, xmm4
2291        vmovdqu	xmm4, OWORD PTR [r8+224]
2292L_AES_XTS_decrypt_avx1_aes_dec_64_aes_dec_block_last:
2293        vaesdeclast	xmm8, xmm8, xmm4
2294        vaesdeclast	xmm9, xmm9, xmm4
2295        vaesdeclast	xmm10, xmm10, xmm4
2296        vaesdeclast	xmm11, xmm11, xmm4
2297        vpxor	xmm8, xmm8, xmm0
2298        vpxor	xmm9, xmm9, xmm1
2299        vpxor	xmm10, xmm10, xmm2
2300        vpxor	xmm11, xmm11, xmm3
2301        vmovdqu	OWORD PTR [rdx], xmm8
2302        vmovdqu	OWORD PTR [rdx+16], xmm9
2303        vmovdqu	OWORD PTR [rdx+32], xmm10
2304        vmovdqu	OWORD PTR [rdx+48], xmm11
2305        vpsrad	xmm4, xmm3, 31
2306        vpslld	xmm0, xmm3, 1
2307        vpshufd	xmm4, xmm4, 147
2308        vpand	xmm4, xmm4, xmm12
2309        vpxor	xmm0, xmm0, xmm4
2310        add	r13d, 64
2311        cmp	r13d, r11d
2312        jl	L_AES_XTS_decrypt_avx1_dec_64
2313L_AES_XTS_decrypt_avx1_done_64:
2314        cmp	r13d, eax
2315        mov	r11d, eax
2316        je	L_AES_XTS_decrypt_avx1_done_dec
2317        and	r11d, 4294967280
2318        cmp	r11d, eax
2319        je	L_AES_XTS_decrypt_avx1_mul16
2320        sub	r11d, 16
2321        sub	r11d, r13d
2322        cmp	r11d, 16
2323        jl	L_AES_XTS_decrypt_avx1_last_31_start
2324        add	r11d, r13d
2325L_AES_XTS_decrypt_avx1_mul16:
2326L_AES_XTS_decrypt_avx1_dec_16:
2327        ; 16 bytes of input
2328        lea	rcx, QWORD PTR [rdi+r13]
2329        vmovdqu	xmm8, OWORD PTR [rcx]
2330        vpxor	xmm8, xmm8, xmm0
2331        ; aes_dec_block
2332        vpxor	xmm8, xmm8, [r8]
2333        vmovdqu	xmm5, OWORD PTR [r8+16]
2334        vaesdec	xmm8, xmm8, xmm5
2335        vmovdqu	xmm5, OWORD PTR [r8+32]
2336        vaesdec	xmm8, xmm8, xmm5
2337        vmovdqu	xmm5, OWORD PTR [r8+48]
2338        vaesdec	xmm8, xmm8, xmm5
2339        vmovdqu	xmm5, OWORD PTR [r8+64]
2340        vaesdec	xmm8, xmm8, xmm5
2341        vmovdqu	xmm5, OWORD PTR [r8+80]
2342        vaesdec	xmm8, xmm8, xmm5
2343        vmovdqu	xmm5, OWORD PTR [r8+96]
2344        vaesdec	xmm8, xmm8, xmm5
2345        vmovdqu	xmm5, OWORD PTR [r8+112]
2346        vaesdec	xmm8, xmm8, xmm5
2347        vmovdqu	xmm5, OWORD PTR [r8+128]
2348        vaesdec	xmm8, xmm8, xmm5
2349        vmovdqu	xmm5, OWORD PTR [r8+144]
2350        vaesdec	xmm8, xmm8, xmm5
2351        cmp	r10d, 11
2352        vmovdqu	xmm5, OWORD PTR [r8+160]
2353        jl	L_AES_XTS_decrypt_avx1_aes_dec_block_last
2354        vaesdec	xmm8, xmm8, xmm5
2355        vmovdqu	xmm6, OWORD PTR [r8+176]
2356        vaesdec	xmm8, xmm8, xmm6
2357        cmp	r10d, 13
2358        vmovdqu	xmm5, OWORD PTR [r8+192]
2359        jl	L_AES_XTS_decrypt_avx1_aes_dec_block_last
2360        vaesdec	xmm8, xmm8, xmm5
2361        vmovdqu	xmm6, OWORD PTR [r8+208]
2362        vaesdec	xmm8, xmm8, xmm6
2363        vmovdqu	xmm5, OWORD PTR [r8+224]
2364L_AES_XTS_decrypt_avx1_aes_dec_block_last:
2365        vaesdeclast	xmm8, xmm8, xmm5
2366        vpxor	xmm8, xmm8, xmm0
2367        lea	rcx, QWORD PTR [rsi+r13]
2368        vmovdqu	OWORD PTR [rcx], xmm8
2369        vpsrad	xmm4, xmm0, 31
2370        vpslld	xmm0, xmm0, 1
2371        vpshufd	xmm4, xmm4, 147
2372        vpand	xmm4, xmm4, xmm12
2373        vpxor	xmm0, xmm0, xmm4
2374        add	r13d, 16
2375        cmp	r13d, r11d
2376        jl	L_AES_XTS_decrypt_avx1_dec_16
2377        cmp	r13d, eax
2378        je	L_AES_XTS_decrypt_avx1_done_dec
2379L_AES_XTS_decrypt_avx1_last_31_start:
2380        vpsrad	xmm4, xmm0, 31
2381        vpslld	xmm7, xmm0, 1
2382        vpshufd	xmm4, xmm4, 147
2383        vpand	xmm4, xmm4, xmm12
2384        vpxor	xmm7, xmm7, xmm4
2385        lea	rcx, QWORD PTR [rdi+r13]
2386        vmovdqu	xmm8, OWORD PTR [rcx]
2387        vpxor	xmm8, xmm8, xmm7
2388        ; aes_dec_block
2389        vpxor	xmm8, xmm8, [r8]
2390        vmovdqu	xmm5, OWORD PTR [r8+16]
2391        vaesdec	xmm8, xmm8, xmm5
2392        vmovdqu	xmm5, OWORD PTR [r8+32]
2393        vaesdec	xmm8, xmm8, xmm5
2394        vmovdqu	xmm5, OWORD PTR [r8+48]
2395        vaesdec	xmm8, xmm8, xmm5
2396        vmovdqu	xmm5, OWORD PTR [r8+64]
2397        vaesdec	xmm8, xmm8, xmm5
2398        vmovdqu	xmm5, OWORD PTR [r8+80]
2399        vaesdec	xmm8, xmm8, xmm5
2400        vmovdqu	xmm5, OWORD PTR [r8+96]
2401        vaesdec	xmm8, xmm8, xmm5
2402        vmovdqu	xmm5, OWORD PTR [r8+112]
2403        vaesdec	xmm8, xmm8, xmm5
2404        vmovdqu	xmm5, OWORD PTR [r8+128]
2405        vaesdec	xmm8, xmm8, xmm5
2406        vmovdqu	xmm5, OWORD PTR [r8+144]
2407        vaesdec	xmm8, xmm8, xmm5
2408        cmp	r10d, 11
2409        vmovdqu	xmm5, OWORD PTR [r8+160]
2410        jl	L_AES_XTS_decrypt_avx1_last_31_aes_dec_block_last
2411        vaesdec	xmm8, xmm8, xmm5
2412        vmovdqu	xmm6, OWORD PTR [r8+176]
2413        vaesdec	xmm8, xmm8, xmm6
2414        cmp	r10d, 13
2415        vmovdqu	xmm5, OWORD PTR [r8+192]
2416        jl	L_AES_XTS_decrypt_avx1_last_31_aes_dec_block_last
2417        vaesdec	xmm8, xmm8, xmm5
2418        vmovdqu	xmm6, OWORD PTR [r8+208]
2419        vaesdec	xmm8, xmm8, xmm6
2420        vmovdqu	xmm5, OWORD PTR [r8+224]
2421L_AES_XTS_decrypt_avx1_last_31_aes_dec_block_last:
2422        vaesdeclast	xmm8, xmm8, xmm5
2423        vpxor	xmm8, xmm8, xmm7
2424        vmovdqu	OWORD PTR [rsp], xmm8
2425        add	r13, 16
2426        xor	rdx, rdx
2427L_AES_XTS_decrypt_avx1_last_31_byte_loop:
2428        mov	r11b, BYTE PTR [rsp+rdx]
2429        mov	cl, BYTE PTR [rdi+r13]
2430        mov	BYTE PTR [rsi+r13], r11b
2431        mov	BYTE PTR [rsp+rdx], cl
2432        inc	r13d
2433        inc	edx
2434        cmp	r13d, eax
2435        jl	L_AES_XTS_decrypt_avx1_last_31_byte_loop
2436        sub	r13, rdx
2437        vmovdqu	xmm8, OWORD PTR [rsp]
2438        vpxor	xmm8, xmm8, xmm0
2439        ; aes_dec_block
2440        vpxor	xmm8, xmm8, [r8]
2441        vmovdqu	xmm5, OWORD PTR [r8+16]
2442        vaesdec	xmm8, xmm8, xmm5
2443        vmovdqu	xmm5, OWORD PTR [r8+32]
2444        vaesdec	xmm8, xmm8, xmm5
2445        vmovdqu	xmm5, OWORD PTR [r8+48]
2446        vaesdec	xmm8, xmm8, xmm5
2447        vmovdqu	xmm5, OWORD PTR [r8+64]
2448        vaesdec	xmm8, xmm8, xmm5
2449        vmovdqu	xmm5, OWORD PTR [r8+80]
2450        vaesdec	xmm8, xmm8, xmm5
2451        vmovdqu	xmm5, OWORD PTR [r8+96]
2452        vaesdec	xmm8, xmm8, xmm5
2453        vmovdqu	xmm5, OWORD PTR [r8+112]
2454        vaesdec	xmm8, xmm8, xmm5
2455        vmovdqu	xmm5, OWORD PTR [r8+128]
2456        vaesdec	xmm8, xmm8, xmm5
2457        vmovdqu	xmm5, OWORD PTR [r8+144]
2458        vaesdec	xmm8, xmm8, xmm5
2459        cmp	r10d, 11
2460        vmovdqu	xmm5, OWORD PTR [r8+160]
2461        jl	L_AES_XTS_decrypt_avx1_last_31_2_aes_dec_block_last
2462        vaesdec	xmm8, xmm8, xmm5
2463        vmovdqu	xmm6, OWORD PTR [r8+176]
2464        vaesdec	xmm8, xmm8, xmm6
2465        cmp	r10d, 13
2466        vmovdqu	xmm5, OWORD PTR [r8+192]
2467        jl	L_AES_XTS_decrypt_avx1_last_31_2_aes_dec_block_last
2468        vaesdec	xmm8, xmm8, xmm5
2469        vmovdqu	xmm6, OWORD PTR [r8+208]
2470        vaesdec	xmm8, xmm8, xmm6
2471        vmovdqu	xmm5, OWORD PTR [r8+224]
2472L_AES_XTS_decrypt_avx1_last_31_2_aes_dec_block_last:
2473        vaesdeclast	xmm8, xmm8, xmm5
2474        vpxor	xmm8, xmm8, xmm0
2475        sub	r13, 16
2476        lea	rcx, QWORD PTR [rsi+r13]
2477        vmovdqu	OWORD PTR [rcx], xmm8
2478L_AES_XTS_decrypt_avx1_done_dec:
2479        vmovdqu	xmm6, OWORD PTR [rsp+16]
2480        vmovdqu	xmm7, OWORD PTR [rsp+32]
2481        vmovdqu	xmm8, OWORD PTR [rsp+48]
2482        vmovdqu	xmm9, OWORD PTR [rsp+64]
2483        vmovdqu	xmm10, OWORD PTR [rsp+80]
2484        vmovdqu	xmm11, OWORD PTR [rsp+96]
2485        vmovdqu	xmm12, OWORD PTR [rsp+112]
2486        add	rsp, 128
2487        pop	r13
2488        pop	r12
2489        pop	rsi
2490        pop	rdi
2491        ret
2492AES_XTS_decrypt_avx1 ENDP
2493_TEXT ENDS
2494_TEXT SEGMENT READONLY PARA
2495AES_XTS_decrypt_update_avx1 PROC
2496        push	rdi
2497        push	rsi
2498        push	r12
2499        mov	rdi, rcx
2500        mov	rsi, rdx
2501        mov	rax, r8
2502        mov	r10, r9
2503        mov	r8, QWORD PTR [rsp+64]
2504        mov	r9d, DWORD PTR [rsp+72]
2505        sub	rsp, 128
2506        vmovdqu	OWORD PTR [rsp+16], xmm6
2507        vmovdqu	OWORD PTR [rsp+32], xmm7
2508        vmovdqu	OWORD PTR [rsp+48], xmm8
2509        vmovdqu	OWORD PTR [rsp+64], xmm9
2510        vmovdqu	OWORD PTR [rsp+80], xmm10
2511        vmovdqu	OWORD PTR [rsp+96], xmm11
2512        vmovdqu	OWORD PTR [rsp+112], xmm12
2513        vmovdqu	xmm12, OWORD PTR L_avx1_aes_xts_gc_xts
2514        vmovdqu	xmm0, OWORD PTR [r8]
2515        xor	r12d, r12d
2516        mov	r11d, eax
2517        and	r11d, 4294967280
2518        cmp	r11d, eax
2519        je	L_AES_XTS_decrypt_update_avx1_mul16_64
2520        sub	r11d, 16
2521        cmp	r11d, 16
2522        jl	L_AES_XTS_decrypt_update_avx1_last_31_start
2523L_AES_XTS_decrypt_update_avx1_mul16_64:
2524        cmp	r11d, 64
2525        jl	L_AES_XTS_decrypt_update_avx1_done_64
2526        and	r11d, 4294967232
2527L_AES_XTS_decrypt_update_avx1_dec_64:
2528        ; 64 bytes of input
2529        ; aes_dec_64
2530        lea	rcx, QWORD PTR [rdi+r12]
2531        lea	rdx, QWORD PTR [rsi+r12]
2532        vmovdqu	xmm8, OWORD PTR [rcx]
2533        vmovdqu	xmm9, OWORD PTR [rcx+16]
2534        vmovdqu	xmm10, OWORD PTR [rcx+32]
2535        vmovdqu	xmm11, OWORD PTR [rcx+48]
2536        vpsrad	xmm4, xmm0, 31
2537        vpslld	xmm1, xmm0, 1
2538        vpshufd	xmm4, xmm4, 147
2539        vpand	xmm4, xmm4, xmm12
2540        vpxor	xmm1, xmm1, xmm4
2541        vpsrad	xmm4, xmm1, 31
2542        vpslld	xmm2, xmm1, 1
2543        vpshufd	xmm4, xmm4, 147
2544        vpand	xmm4, xmm4, xmm12
2545        vpxor	xmm2, xmm2, xmm4
2546        vpsrad	xmm4, xmm2, 31
2547        vpslld	xmm3, xmm2, 1
2548        vpshufd	xmm4, xmm4, 147
2549        vpand	xmm4, xmm4, xmm12
2550        vpxor	xmm3, xmm3, xmm4
2551        vpxor	xmm8, xmm8, xmm0
2552        vpxor	xmm9, xmm9, xmm1
2553        vpxor	xmm10, xmm10, xmm2
2554        vpxor	xmm11, xmm11, xmm3
2555        ; aes_dec_block
2556        vmovdqu	xmm4, OWORD PTR [r10]
2557        vpxor	xmm8, xmm8, xmm4
2558        vpxor	xmm9, xmm9, xmm4
2559        vpxor	xmm10, xmm10, xmm4
2560        vpxor	xmm11, xmm11, xmm4
2561        vmovdqu	xmm4, OWORD PTR [r10+16]
2562        vaesdec	xmm8, xmm8, xmm4
2563        vaesdec	xmm9, xmm9, xmm4
2564        vaesdec	xmm10, xmm10, xmm4
2565        vaesdec	xmm11, xmm11, xmm4
2566        vmovdqu	xmm4, OWORD PTR [r10+32]
2567        vaesdec	xmm8, xmm8, xmm4
2568        vaesdec	xmm9, xmm9, xmm4
2569        vaesdec	xmm10, xmm10, xmm4
2570        vaesdec	xmm11, xmm11, xmm4
2571        vmovdqu	xmm4, OWORD PTR [r10+48]
2572        vaesdec	xmm8, xmm8, xmm4
2573        vaesdec	xmm9, xmm9, xmm4
2574        vaesdec	xmm10, xmm10, xmm4
2575        vaesdec	xmm11, xmm11, xmm4
2576        vmovdqu	xmm4, OWORD PTR [r10+64]
2577        vaesdec	xmm8, xmm8, xmm4
2578        vaesdec	xmm9, xmm9, xmm4
2579        vaesdec	xmm10, xmm10, xmm4
2580        vaesdec	xmm11, xmm11, xmm4
2581        vmovdqu	xmm4, OWORD PTR [r10+80]
2582        vaesdec	xmm8, xmm8, xmm4
2583        vaesdec	xmm9, xmm9, xmm4
2584        vaesdec	xmm10, xmm10, xmm4
2585        vaesdec	xmm11, xmm11, xmm4
2586        vmovdqu	xmm4, OWORD PTR [r10+96]
2587        vaesdec	xmm8, xmm8, xmm4
2588        vaesdec	xmm9, xmm9, xmm4
2589        vaesdec	xmm10, xmm10, xmm4
2590        vaesdec	xmm11, xmm11, xmm4
2591        vmovdqu	xmm4, OWORD PTR [r10+112]
2592        vaesdec	xmm8, xmm8, xmm4
2593        vaesdec	xmm9, xmm9, xmm4
2594        vaesdec	xmm10, xmm10, xmm4
2595        vaesdec	xmm11, xmm11, xmm4
2596        vmovdqu	xmm4, OWORD PTR [r10+128]
2597        vaesdec	xmm8, xmm8, xmm4
2598        vaesdec	xmm9, xmm9, xmm4
2599        vaesdec	xmm10, xmm10, xmm4
2600        vaesdec	xmm11, xmm11, xmm4
2601        vmovdqu	xmm4, OWORD PTR [r10+144]
2602        vaesdec	xmm8, xmm8, xmm4
2603        vaesdec	xmm9, xmm9, xmm4
2604        vaesdec	xmm10, xmm10, xmm4
2605        vaesdec	xmm11, xmm11, xmm4
2606        cmp	r9d, 11
2607        vmovdqu	xmm4, OWORD PTR [r10+160]
2608        jl	L_AES_XTS_decrypt_update_avx1_aes_dec_64_aes_dec_block_last
2609        vaesdec	xmm8, xmm8, xmm4
2610        vaesdec	xmm9, xmm9, xmm4
2611        vaesdec	xmm10, xmm10, xmm4
2612        vaesdec	xmm11, xmm11, xmm4
2613        vmovdqu	xmm4, OWORD PTR [r10+176]
2614        vaesdec	xmm8, xmm8, xmm4
2615        vaesdec	xmm9, xmm9, xmm4
2616        vaesdec	xmm10, xmm10, xmm4
2617        vaesdec	xmm11, xmm11, xmm4
2618        cmp	r9d, 13
2619        vmovdqu	xmm4, OWORD PTR [r10+192]
2620        jl	L_AES_XTS_decrypt_update_avx1_aes_dec_64_aes_dec_block_last
2621        vaesdec	xmm8, xmm8, xmm4
2622        vaesdec	xmm9, xmm9, xmm4
2623        vaesdec	xmm10, xmm10, xmm4
2624        vaesdec	xmm11, xmm11, xmm4
2625        vmovdqu	xmm4, OWORD PTR [r10+208]
2626        vaesdec	xmm8, xmm8, xmm4
2627        vaesdec	xmm9, xmm9, xmm4
2628        vaesdec	xmm10, xmm10, xmm4
2629        vaesdec	xmm11, xmm11, xmm4
2630        vmovdqu	xmm4, OWORD PTR [r10+224]
2631L_AES_XTS_decrypt_update_avx1_aes_dec_64_aes_dec_block_last:
2632        vaesdeclast	xmm8, xmm8, xmm4
2633        vaesdeclast	xmm9, xmm9, xmm4
2634        vaesdeclast	xmm10, xmm10, xmm4
2635        vaesdeclast	xmm11, xmm11, xmm4
2636        vpxor	xmm8, xmm8, xmm0
2637        vpxor	xmm9, xmm9, xmm1
2638        vpxor	xmm10, xmm10, xmm2
2639        vpxor	xmm11, xmm11, xmm3
2640        vmovdqu	OWORD PTR [rdx], xmm8
2641        vmovdqu	OWORD PTR [rdx+16], xmm9
2642        vmovdqu	OWORD PTR [rdx+32], xmm10
2643        vmovdqu	OWORD PTR [rdx+48], xmm11
2644        vpsrad	xmm4, xmm3, 31
2645        vpslld	xmm0, xmm3, 1
2646        vpshufd	xmm4, xmm4, 147
2647        vpand	xmm4, xmm4, xmm12
2648        vpxor	xmm0, xmm0, xmm4
2649        add	r12d, 64
2650        cmp	r12d, r11d
2651        jl	L_AES_XTS_decrypt_update_avx1_dec_64
2652L_AES_XTS_decrypt_update_avx1_done_64:
2653        cmp	r12d, eax
2654        mov	r11d, eax
2655        je	L_AES_XTS_decrypt_update_avx1_done_dec
2656        and	r11d, 4294967280
2657        cmp	r11d, eax
2658        je	L_AES_XTS_decrypt_update_avx1_mul16
2659        sub	r11d, 16
2660        sub	r11d, r12d
2661        cmp	r11d, 16
2662        jl	L_AES_XTS_decrypt_update_avx1_last_31_start
2663        add	r11d, r12d
2664L_AES_XTS_decrypt_update_avx1_mul16:
2665L_AES_XTS_decrypt_update_avx1_dec_16:
2666        ; 16 bytes of input
2667        lea	rcx, QWORD PTR [rdi+r12]
2668        vmovdqu	xmm8, OWORD PTR [rcx]
2669        vpxor	xmm8, xmm8, xmm0
2670        ; aes_dec_block
2671        vpxor	xmm8, xmm8, [r10]
2672        vmovdqu	xmm5, OWORD PTR [r10+16]
2673        vaesdec	xmm8, xmm8, xmm5
2674        vmovdqu	xmm5, OWORD PTR [r10+32]
2675        vaesdec	xmm8, xmm8, xmm5
2676        vmovdqu	xmm5, OWORD PTR [r10+48]
2677        vaesdec	xmm8, xmm8, xmm5
2678        vmovdqu	xmm5, OWORD PTR [r10+64]
2679        vaesdec	xmm8, xmm8, xmm5
2680        vmovdqu	xmm5, OWORD PTR [r10+80]
2681        vaesdec	xmm8, xmm8, xmm5
2682        vmovdqu	xmm5, OWORD PTR [r10+96]
2683        vaesdec	xmm8, xmm8, xmm5
2684        vmovdqu	xmm5, OWORD PTR [r10+112]
2685        vaesdec	xmm8, xmm8, xmm5
2686        vmovdqu	xmm5, OWORD PTR [r10+128]
2687        vaesdec	xmm8, xmm8, xmm5
2688        vmovdqu	xmm5, OWORD PTR [r10+144]
2689        vaesdec	xmm8, xmm8, xmm5
2690        cmp	r9d, 11
2691        vmovdqu	xmm5, OWORD PTR [r10+160]
2692        jl	L_AES_XTS_decrypt_update_avx1_aes_dec_block_last
2693        vaesdec	xmm8, xmm8, xmm5
2694        vmovdqu	xmm6, OWORD PTR [r10+176]
2695        vaesdec	xmm8, xmm8, xmm6
2696        cmp	r9d, 13
2697        vmovdqu	xmm5, OWORD PTR [r10+192]
2698        jl	L_AES_XTS_decrypt_update_avx1_aes_dec_block_last
2699        vaesdec	xmm8, xmm8, xmm5
2700        vmovdqu	xmm6, OWORD PTR [r10+208]
2701        vaesdec	xmm8, xmm8, xmm6
2702        vmovdqu	xmm5, OWORD PTR [r10+224]
2703L_AES_XTS_decrypt_update_avx1_aes_dec_block_last:
2704        vaesdeclast	xmm8, xmm8, xmm5
2705        vpxor	xmm8, xmm8, xmm0
2706        lea	rcx, QWORD PTR [rsi+r12]
2707        vmovdqu	OWORD PTR [rcx], xmm8
2708        vpsrad	xmm4, xmm0, 31
2709        vpslld	xmm0, xmm0, 1
2710        vpshufd	xmm4, xmm4, 147
2711        vpand	xmm4, xmm4, xmm12
2712        vpxor	xmm0, xmm0, xmm4
2713        add	r12d, 16
2714        cmp	r12d, r11d
2715        jl	L_AES_XTS_decrypt_update_avx1_dec_16
2716        cmp	r12d, eax
2717        je	L_AES_XTS_decrypt_update_avx1_done_dec
2718L_AES_XTS_decrypt_update_avx1_last_31_start:
2719        vpsrad	xmm4, xmm0, 31
2720        vpslld	xmm7, xmm0, 1
2721        vpshufd	xmm4, xmm4, 147
2722        vpand	xmm4, xmm4, xmm12
2723        vpxor	xmm7, xmm7, xmm4
2724        lea	rcx, QWORD PTR [rdi+r12]
2725        vmovdqu	xmm8, OWORD PTR [rcx]
2726        vpxor	xmm8, xmm8, xmm7
2727        ; aes_dec_block
2728        vpxor	xmm8, xmm8, [r10]
2729        vmovdqu	xmm5, OWORD PTR [r10+16]
2730        vaesdec	xmm8, xmm8, xmm5
2731        vmovdqu	xmm5, OWORD PTR [r10+32]
2732        vaesdec	xmm8, xmm8, xmm5
2733        vmovdqu	xmm5, OWORD PTR [r10+48]
2734        vaesdec	xmm8, xmm8, xmm5
2735        vmovdqu	xmm5, OWORD PTR [r10+64]
2736        vaesdec	xmm8, xmm8, xmm5
2737        vmovdqu	xmm5, OWORD PTR [r10+80]
2738        vaesdec	xmm8, xmm8, xmm5
2739        vmovdqu	xmm5, OWORD PTR [r10+96]
2740        vaesdec	xmm8, xmm8, xmm5
2741        vmovdqu	xmm5, OWORD PTR [r10+112]
2742        vaesdec	xmm8, xmm8, xmm5
2743        vmovdqu	xmm5, OWORD PTR [r10+128]
2744        vaesdec	xmm8, xmm8, xmm5
2745        vmovdqu	xmm5, OWORD PTR [r10+144]
2746        vaesdec	xmm8, xmm8, xmm5
2747        cmp	r9d, 11
2748        vmovdqu	xmm5, OWORD PTR [r10+160]
2749        jl	L_AES_XTS_decrypt_update_avx1_last_31_aes_dec_block_last
2750        vaesdec	xmm8, xmm8, xmm5
2751        vmovdqu	xmm6, OWORD PTR [r10+176]
2752        vaesdec	xmm8, xmm8, xmm6
2753        cmp	r9d, 13
2754        vmovdqu	xmm5, OWORD PTR [r10+192]
2755        jl	L_AES_XTS_decrypt_update_avx1_last_31_aes_dec_block_last
2756        vaesdec	xmm8, xmm8, xmm5
2757        vmovdqu	xmm6, OWORD PTR [r10+208]
2758        vaesdec	xmm8, xmm8, xmm6
2759        vmovdqu	xmm5, OWORD PTR [r10+224]
2760L_AES_XTS_decrypt_update_avx1_last_31_aes_dec_block_last:
2761        vaesdeclast	xmm8, xmm8, xmm5
2762        vpxor	xmm8, xmm8, xmm7
2763        vmovdqu	OWORD PTR [rsp], xmm8
2764        add	r12, 16
2765        xor	rdx, rdx
2766L_AES_XTS_decrypt_update_avx1_last_31_byte_loop:
2767        mov	r11b, BYTE PTR [rsp+rdx]
2768        mov	cl, BYTE PTR [rdi+r12]
2769        mov	BYTE PTR [rsi+r12], r11b
2770        mov	BYTE PTR [rsp+rdx], cl
2771        inc	r12d
2772        inc	edx
2773        cmp	r12d, eax
2774        jl	L_AES_XTS_decrypt_update_avx1_last_31_byte_loop
2775        sub	r12, rdx
2776        vmovdqu	xmm8, OWORD PTR [rsp]
2777        vpxor	xmm8, xmm8, xmm0
2778        ; aes_dec_block
2779        vpxor	xmm8, xmm8, [r10]
2780        vmovdqu	xmm5, OWORD PTR [r10+16]
2781        vaesdec	xmm8, xmm8, xmm5
2782        vmovdqu	xmm5, OWORD PTR [r10+32]
2783        vaesdec	xmm8, xmm8, xmm5
2784        vmovdqu	xmm5, OWORD PTR [r10+48]
2785        vaesdec	xmm8, xmm8, xmm5
2786        vmovdqu	xmm5, OWORD PTR [r10+64]
2787        vaesdec	xmm8, xmm8, xmm5
2788        vmovdqu	xmm5, OWORD PTR [r10+80]
2789        vaesdec	xmm8, xmm8, xmm5
2790        vmovdqu	xmm5, OWORD PTR [r10+96]
2791        vaesdec	xmm8, xmm8, xmm5
2792        vmovdqu	xmm5, OWORD PTR [r10+112]
2793        vaesdec	xmm8, xmm8, xmm5
2794        vmovdqu	xmm5, OWORD PTR [r10+128]
2795        vaesdec	xmm8, xmm8, xmm5
2796        vmovdqu	xmm5, OWORD PTR [r10+144]
2797        vaesdec	xmm8, xmm8, xmm5
2798        cmp	r9d, 11
2799        vmovdqu	xmm5, OWORD PTR [r10+160]
2800        jl	L_AES_XTS_decrypt_update_avx1_last_31_2_aes_dec_block_last
2801        vaesdec	xmm8, xmm8, xmm5
2802        vmovdqu	xmm6, OWORD PTR [r10+176]
2803        vaesdec	xmm8, xmm8, xmm6
2804        cmp	r9d, 13
2805        vmovdqu	xmm5, OWORD PTR [r10+192]
2806        jl	L_AES_XTS_decrypt_update_avx1_last_31_2_aes_dec_block_last
2807        vaesdec	xmm8, xmm8, xmm5
2808        vmovdqu	xmm6, OWORD PTR [r10+208]
2809        vaesdec	xmm8, xmm8, xmm6
2810        vmovdqu	xmm5, OWORD PTR [r10+224]
2811L_AES_XTS_decrypt_update_avx1_last_31_2_aes_dec_block_last:
2812        vaesdeclast	xmm8, xmm8, xmm5
2813        vpxor	xmm8, xmm8, xmm0
2814        sub	r12, 16
2815        lea	rcx, QWORD PTR [rsi+r12]
2816        vmovdqu	OWORD PTR [rcx], xmm8
2817L_AES_XTS_decrypt_update_avx1_done_dec:
2818        vmovdqu	OWORD PTR [r8], xmm0
2819        vmovdqu	xmm6, OWORD PTR [rsp+16]
2820        vmovdqu	xmm7, OWORD PTR [rsp+32]
2821        vmovdqu	xmm8, OWORD PTR [rsp+48]
2822        vmovdqu	xmm9, OWORD PTR [rsp+64]
2823        vmovdqu	xmm10, OWORD PTR [rsp+80]
2824        vmovdqu	xmm11, OWORD PTR [rsp+96]
2825        vmovdqu	xmm12, OWORD PTR [rsp+112]
2826        add	rsp, 128
2827        pop	r12
2828        pop	rsi
2829        pop	rdi
2830        ret
2831AES_XTS_decrypt_update_avx1 ENDP
2832_TEXT ENDS
2833ENDIF
2834END