cjson
fuzzing
inputs
test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9library_config
cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmaketests
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.expectedjson-patch-tests
.editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.jsonunity
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.pydocs
ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txtexamples
unity_config.hcurl
.github
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.yamlworkflows
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.ymlCMake
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.cmakedocs
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.mdexamples
.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.cinternals
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.mdlibcurl
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.incinclude
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.hlib
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.hvauth
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.hvquic
curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.hvtls
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.hm4
.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.m4projects
OS400
.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.hWindows
tmpl
.gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filtersvms
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.hscripts
.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 wcurlsrc
.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.htests
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.prmdata
.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 test999http
testenv
__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.pylibtest
.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.hserver
.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.ctunit
.gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.cunit
.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.cexamples
.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.luainiparser
example
iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.initest
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.hjinjac
libjinjac
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.htest
.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.jinjalibev
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-h1luajit
doc
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.htmldynasm
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.luasrc
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.cjit
.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.luawolfssl
.github
workflows
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.ymlIDE
ARDUINO
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.hECLIPSE
Espressif
ESP-IDF
examples
template
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266wolfssl_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.vgdbprojwolfssl_client
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbprojwolfssl_server
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbprojwolfssl_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.vgdbprojGCC-ARM
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ldIAR-EWARM
embOS
SAMV71_XULT
embOS_SAMV71_XULT_user_settings
user_settings.h user_settings_simple_example.h user_settings_verbose_example.hembOS_wolfcrypt_benchmark_SAMV71_XULT
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewpINTIME-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.vcxprojMQX
Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.hMSVS-2019-AZSPHERE
wolfssl_new_azsphere
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.cNETOS
Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.cPlatformIO
examples
wolfssl_benchmark
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspaceROWLEY-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.hzpRenesas
e2studio
RA6M3
README.md README_APRA6M_en.md README_APRA6M_jp.md include.amRX72N
EnvisionKit
Simple
README_EN.md README_JP.mdwolfssl_demo
key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.cSTM32Cube
README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.hWIN
README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxprojWIN-SRTP-KDF-140-3
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojWIN10
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojXCODE
Benchmark
include.amXilinxSDK
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.capple-universal
wolfssl-multiplatform
iotsafe
Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.hmynewt
README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.shcerts
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.pemcrl
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.pemdilithium
bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.amecc
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.cnfed25519
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.pemed448
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.pemexternal
DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.amintermediate
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.conflms
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.ammldsa
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.derocsp
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.derp521
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.pemrpk
client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.derrsapss
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.pemslhdsa
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.pemsm2
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.pemstatickeys
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.pemtest
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.p7stest-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.shtest-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.pemxmss
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.amcmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.indebian
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.indoc
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.hheader_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.hexamples
async
Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.hconfigs
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.hechoclient
echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quitlinuxkm
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.cm4
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.m4mqx
wolfcrypt_benchmark
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.launchwolfcrypt_test
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.launchwolfssl_client
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.launchscripts
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.shsrc
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.ctests
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.hwolfcrypt
benchmark
README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.amsrc
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.pyRenesas
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.carm
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.ccaam
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.cdevcrypto
README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.criscv
riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.cwolfssl
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.hwolfcrypt
port
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.hcaam
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.hwrapper
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.adbtests
src
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.adbCSharp
wolfSSL-Example-IOCallbacks
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csprojwolfSSL-TLS-ServerThreaded
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csprojrust
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.rstests
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.rszephyr
samples
wolfssl_benchmark
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.confwolfssl_test
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl/wolfcrypt/src/port/arm/thumb2-mlkem-asm.S
raw
1/* thumb2-mlkem-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
22/* Generated using (from wolfssl):
23 * cd ../scripts
24 * ruby ./kyber/kyber.rb \
25 * thumb2 ../wolfssl/wolfcrypt/src/port/arm/thumb2-mlkem-asm.S
26 */
27
28#include <wolfssl/wolfcrypt/libwolfssl_sources_asm.h>
29
30#ifdef WOLFSSL_ARMASM
31#ifdef WOLFSSL_ARMASM_THUMB2
32#ifndef WOLFSSL_ARMASM_INLINE
33 .thumb
34 .syntax unified
35#ifdef WOLFSSL_HAVE_MLKEM
36#ifndef __APPLE__
37 .text
38 .type L_mlkem_thumb2_ntt_zetas, %object
39 .size L_mlkem_thumb2_ntt_zetas, 256
40#else
41 .section __DATA,__data
42#endif /* __APPLE__ */
43 /* 4-byte aligned, 32-bit aligned */
44#ifndef __APPLE__
45 .align 2
46#else
47 .p2align 2
48#endif /* __APPLE__ */
49L_mlkem_thumb2_ntt_zetas:
50 .short 0x08ed,0x0a0b,0x0b9a,0x0714,0x05d5,0x058e,0x011f,0x00ca
51 .short 0x0c56,0x026e,0x0629,0x00b6,0x03c2,0x084f,0x073f,0x05bc
52 .short 0x023d,0x07d4,0x0108,0x017f,0x09c4,0x05b2,0x06bf,0x0c7f
53 .short 0x0a58,0x03f9,0x02dc,0x0260,0x06fb,0x019b,0x0c34,0x06de
54 .short 0x04c7,0x028c,0x0ad9,0x03f7,0x07f4,0x05d3,0x0be7,0x06f9
55 .short 0x0204,0x0cf9,0x0bc1,0x0a67,0x06af,0x0877,0x007e,0x05bd
56 .short 0x09ac,0x0ca7,0x0bf2,0x033e,0x006b,0x0774,0x0c0a,0x094a
57 .short 0x0b73,0x03c1,0x071d,0x0a2c,0x01c0,0x08d8,0x02a5,0x0806
58 .short 0x08b2,0x01ae,0x022b,0x034b,0x081e,0x0367,0x060e,0x0069
59 .short 0x01a6,0x024b,0x00b1,0x0c16,0x0bde,0x0b35,0x0626,0x0675
60 .short 0x0c0b,0x030a,0x0487,0x0c6e,0x09f8,0x05cb,0x0aa7,0x045f
61 .short 0x06cb,0x0284,0x0999,0x015d,0x01a2,0x0149,0x0c65,0x0cb6
62 .short 0x0331,0x0449,0x025b,0x0262,0x052a,0x07fc,0x0748,0x0180
63 .short 0x0842,0x0c79,0x04c2,0x07ca,0x0997,0x00dc,0x085e,0x0686
64 .short 0x0860,0x0707,0x0803,0x031a,0x071b,0x09ab,0x099b,0x01de
65 .short 0x0c95,0x0bcd,0x03e4,0x03df,0x03be,0x074d,0x05f2,0x065c
66 .text
67 .align 4
68 .globl mlkem_thumb2_ntt
69 .type mlkem_thumb2_ntt, %function
70mlkem_thumb2_ntt:
71 PUSH {r4, r5, r6, r7, r8, r9, r10, r11, lr}
72 SUB sp, sp, #0x8
73 ADR r1, L_mlkem_thumb2_ntt_zetas
74#ifndef WOLFSSL_ARM_ARCH_7M
75 MOV r12, #0xd01
76 MOVT r12, #0xcff
77#endif /* !WOLFSSL_ARM_ARCH_7M */
78 MOV r2, #0x10
79L_mlkem_thumb2_ntt_loop_123:
80 STR r2, [sp]
81 LDRH lr, [r1, #2]
82 LDR r2, [r0]
83 LDR r3, [r0, #64]
84 LDR r4, [r0, #128]
85 LDR r5, [r0, #192]
86 LDR r6, [r0, #256]
87 LDR r7, [r0, #320]
88 LDR r8, [r0, #384]
89 LDR r9, [r0, #448]
90#ifndef WOLFSSL_ARM_ARCH_7M
91 SMULBB r10, lr, r6
92 SMULBT r6, lr, r6
93 SMULTB r11, r12, r10
94 SMLABB r10, r12, r11, r10
95 SMULTB r11, r12, r6
96 SMLABB r11, r12, r11, r6
97 PKHTB r10, r11, r10, ASR #16
98 SSUB16 r6, r2, r10
99 SADD16 r2, r2, r10
100#else
101 SBFX r10, r6, #0, #16
102 SBFX r11, lr, #0, #16
103 ASR r6, r6, #16
104 MUL r10, r11, r10
105 MUL r6, r11, r6
106 MOV r12, #0xcff
107 MUL r11, r12, r10
108 MOV r12, #0xd01
109 SBFX r11, r11, #0, #16
110 MLA r10, r12, r11, r10
111 MOV r12, #0xcff
112 SBFX r11, r6, #0, #16
113 MUL r11, r12, r11
114 MOV r12, #0xd01
115 SBFX r11, r11, #0, #16
116 MLA r11, r12, r11, r6
117 SUB r6, r2, r11
118 ADD r2, r2, r11
119 SUB r11, r2, r10, LSR #16
120 ADD r10, r2, r10, LSR #16
121 BFI r6, r11, #0, #16
122 BFI r2, r10, #0, #16
123#endif /* !WOLFSSL_ARM_ARCH_7M */
124#ifndef WOLFSSL_ARM_ARCH_7M
125 SMULBB r10, lr, r7
126 SMULBT r7, lr, r7
127 SMULTB r11, r12, r10
128 SMLABB r10, r12, r11, r10
129 SMULTB r11, r12, r7
130 SMLABB r11, r12, r11, r7
131 PKHTB r10, r11, r10, ASR #16
132 SSUB16 r7, r3, r10
133 SADD16 r3, r3, r10
134#else
135 SBFX r10, r7, #0, #16
136 SBFX r11, lr, #0, #16
137 ASR r7, r7, #16
138 MUL r10, r11, r10
139 MUL r7, r11, r7
140 MOV r12, #0xcff
141 MUL r11, r12, r10
142 MOV r12, #0xd01
143 SBFX r11, r11, #0, #16
144 MLA r10, r12, r11, r10
145 MOV r12, #0xcff
146 SBFX r11, r7, #0, #16
147 MUL r11, r12, r11
148 MOV r12, #0xd01
149 SBFX r11, r11, #0, #16
150 MLA r11, r12, r11, r7
151 SUB r7, r3, r11
152 ADD r3, r3, r11
153 SUB r11, r3, r10, LSR #16
154 ADD r10, r3, r10, LSR #16
155 BFI r7, r11, #0, #16
156 BFI r3, r10, #0, #16
157#endif /* !WOLFSSL_ARM_ARCH_7M */
158#ifndef WOLFSSL_ARM_ARCH_7M
159 SMULBB r10, lr, r8
160 SMULBT r8, lr, r8
161 SMULTB r11, r12, r10
162 SMLABB r10, r12, r11, r10
163 SMULTB r11, r12, r8
164 SMLABB r11, r12, r11, r8
165 PKHTB r10, r11, r10, ASR #16
166 SSUB16 r8, r4, r10
167 SADD16 r4, r4, r10
168#else
169 SBFX r10, r8, #0, #16
170 SBFX r11, lr, #0, #16
171 ASR r8, r8, #16
172 MUL r10, r11, r10
173 MUL r8, r11, r8
174 MOV r12, #0xcff
175 MUL r11, r12, r10
176 MOV r12, #0xd01
177 SBFX r11, r11, #0, #16
178 MLA r10, r12, r11, r10
179 MOV r12, #0xcff
180 SBFX r11, r8, #0, #16
181 MUL r11, r12, r11
182 MOV r12, #0xd01
183 SBFX r11, r11, #0, #16
184 MLA r11, r12, r11, r8
185 SUB r8, r4, r11
186 ADD r4, r4, r11
187 SUB r11, r4, r10, LSR #16
188 ADD r10, r4, r10, LSR #16
189 BFI r8, r11, #0, #16
190 BFI r4, r10, #0, #16
191#endif /* !WOLFSSL_ARM_ARCH_7M */
192#ifndef WOLFSSL_ARM_ARCH_7M
193 SMULBB r10, lr, r9
194 SMULBT r9, lr, r9
195 SMULTB r11, r12, r10
196 SMLABB r10, r12, r11, r10
197 SMULTB r11, r12, r9
198 SMLABB r11, r12, r11, r9
199 PKHTB r10, r11, r10, ASR #16
200 SSUB16 r9, r5, r10
201 SADD16 r5, r5, r10
202#else
203 SBFX r10, r9, #0, #16
204 SBFX r11, lr, #0, #16
205 ASR r9, r9, #16
206 MUL r10, r11, r10
207 MUL r9, r11, r9
208 MOV r12, #0xcff
209 MUL r11, r12, r10
210 MOV r12, #0xd01
211 SBFX r11, r11, #0, #16
212 MLA r10, r12, r11, r10
213 MOV r12, #0xcff
214 SBFX r11, r9, #0, #16
215 MUL r11, r12, r11
216 MOV r12, #0xd01
217 SBFX r11, r11, #0, #16
218 MLA r11, r12, r11, r9
219 SUB r9, r5, r11
220 ADD r5, r5, r11
221 SUB r11, r5, r10, LSR #16
222 ADD r10, r5, r10, LSR #16
223 BFI r9, r11, #0, #16
224 BFI r5, r10, #0, #16
225#endif /* !WOLFSSL_ARM_ARCH_7M */
226 LDR lr, [r1, #4]
227#ifndef WOLFSSL_ARM_ARCH_7M
228 SMULBB r10, lr, r4
229 SMULBT r4, lr, r4
230 SMULTB r11, r12, r10
231 SMLABB r10, r12, r11, r10
232 SMULTB r11, r12, r4
233 SMLABB r11, r12, r11, r4
234 PKHTB r10, r11, r10, ASR #16
235 SSUB16 r4, r2, r10
236 SADD16 r2, r2, r10
237#else
238 SBFX r10, r4, #0, #16
239 SBFX r11, lr, #0, #16
240 ASR r4, r4, #16
241 MUL r10, r11, r10
242 MUL r4, r11, r4
243 MOV r12, #0xcff
244 MUL r11, r12, r10
245 MOV r12, #0xd01
246 SBFX r11, r11, #0, #16
247 MLA r10, r12, r11, r10
248 MOV r12, #0xcff
249 SBFX r11, r4, #0, #16
250 MUL r11, r12, r11
251 MOV r12, #0xd01
252 SBFX r11, r11, #0, #16
253 MLA r11, r12, r11, r4
254 SUB r4, r2, r11
255 ADD r2, r2, r11
256 SUB r11, r2, r10, LSR #16
257 ADD r10, r2, r10, LSR #16
258 BFI r4, r11, #0, #16
259 BFI r2, r10, #0, #16
260#endif /* !WOLFSSL_ARM_ARCH_7M */
261#ifndef WOLFSSL_ARM_ARCH_7M
262 SMULBB r10, lr, r5
263 SMULBT r5, lr, r5
264 SMULTB r11, r12, r10
265 SMLABB r10, r12, r11, r10
266 SMULTB r11, r12, r5
267 SMLABB r11, r12, r11, r5
268 PKHTB r10, r11, r10, ASR #16
269 SSUB16 r5, r3, r10
270 SADD16 r3, r3, r10
271#else
272 SBFX r10, r5, #0, #16
273 SBFX r11, lr, #0, #16
274 ASR r5, r5, #16
275 MUL r10, r11, r10
276 MUL r5, r11, r5
277 MOV r12, #0xcff
278 MUL r11, r12, r10
279 MOV r12, #0xd01
280 SBFX r11, r11, #0, #16
281 MLA r10, r12, r11, r10
282 MOV r12, #0xcff
283 SBFX r11, r5, #0, #16
284 MUL r11, r12, r11
285 MOV r12, #0xd01
286 SBFX r11, r11, #0, #16
287 MLA r11, r12, r11, r5
288 SUB r5, r3, r11
289 ADD r3, r3, r11
290 SUB r11, r3, r10, LSR #16
291 ADD r10, r3, r10, LSR #16
292 BFI r5, r11, #0, #16
293 BFI r3, r10, #0, #16
294#endif /* !WOLFSSL_ARM_ARCH_7M */
295#ifndef WOLFSSL_ARM_ARCH_7M
296 SMULTB r10, lr, r8
297 SMULTT r8, lr, r8
298 SMULTB r11, r12, r10
299 SMLABB r10, r12, r11, r10
300 SMULTB r11, r12, r8
301 SMLABB r11, r12, r11, r8
302 PKHTB r10, r11, r10, ASR #16
303 SSUB16 r8, r6, r10
304 SADD16 r6, r6, r10
305#else
306 SBFX r10, r8, #0, #16
307 SBFX r11, lr, #16, #16
308 ASR r8, r8, #16
309 MUL r10, r11, r10
310 MUL r8, r11, r8
311 MOV r12, #0xcff
312 MUL r11, r12, r10
313 MOV r12, #0xd01
314 SBFX r11, r11, #0, #16
315 MLA r10, r12, r11, r10
316 MOV r12, #0xcff
317 SBFX r11, r8, #0, #16
318 MUL r11, r12, r11
319 MOV r12, #0xd01
320 SBFX r11, r11, #0, #16
321 MLA r11, r12, r11, r8
322 SUB r8, r6, r11
323 ADD r6, r6, r11
324 SUB r11, r6, r10, LSR #16
325 ADD r10, r6, r10, LSR #16
326 BFI r8, r11, #0, #16
327 BFI r6, r10, #0, #16
328#endif /* !WOLFSSL_ARM_ARCH_7M */
329#ifndef WOLFSSL_ARM_ARCH_7M
330 SMULTB r10, lr, r9
331 SMULTT r9, lr, r9
332 SMULTB r11, r12, r10
333 SMLABB r10, r12, r11, r10
334 SMULTB r11, r12, r9
335 SMLABB r11, r12, r11, r9
336 PKHTB r10, r11, r10, ASR #16
337 SSUB16 r9, r7, r10
338 SADD16 r7, r7, r10
339#else
340 SBFX r10, r9, #0, #16
341 SBFX r11, lr, #16, #16
342 ASR r9, r9, #16
343 MUL r10, r11, r10
344 MUL r9, r11, r9
345 MOV r12, #0xcff
346 MUL r11, r12, r10
347 MOV r12, #0xd01
348 SBFX r11, r11, #0, #16
349 MLA r10, r12, r11, r10
350 MOV r12, #0xcff
351 SBFX r11, r9, #0, #16
352 MUL r11, r12, r11
353 MOV r12, #0xd01
354 SBFX r11, r11, #0, #16
355 MLA r11, r12, r11, r9
356 SUB r9, r7, r11
357 ADD r7, r7, r11
358 SUB r11, r7, r10, LSR #16
359 ADD r10, r7, r10, LSR #16
360 BFI r9, r11, #0, #16
361 BFI r7, r10, #0, #16
362#endif /* !WOLFSSL_ARM_ARCH_7M */
363 LDR lr, [r1, #8]
364#ifndef WOLFSSL_ARM_ARCH_7M
365 SMULBB r10, lr, r3
366 SMULBT r3, lr, r3
367 SMULTB r11, r12, r10
368 SMLABB r10, r12, r11, r10
369 SMULTB r11, r12, r3
370 SMLABB r11, r12, r11, r3
371 PKHTB r10, r11, r10, ASR #16
372 SSUB16 r3, r2, r10
373 SADD16 r2, r2, r10
374#else
375 SBFX r10, r3, #0, #16
376 SBFX r11, lr, #0, #16
377 ASR r3, r3, #16
378 MUL r10, r11, r10
379 MUL r3, r11, r3
380 MOV r12, #0xcff
381 MUL r11, r12, r10
382 MOV r12, #0xd01
383 SBFX r11, r11, #0, #16
384 MLA r10, r12, r11, r10
385 MOV r12, #0xcff
386 SBFX r11, r3, #0, #16
387 MUL r11, r12, r11
388 MOV r12, #0xd01
389 SBFX r11, r11, #0, #16
390 MLA r11, r12, r11, r3
391 SUB r3, r2, r11
392 ADD r2, r2, r11
393 SUB r11, r2, r10, LSR #16
394 ADD r10, r2, r10, LSR #16
395 BFI r3, r11, #0, #16
396 BFI r2, r10, #0, #16
397#endif /* !WOLFSSL_ARM_ARCH_7M */
398#ifndef WOLFSSL_ARM_ARCH_7M
399 SMULTB r10, lr, r5
400 SMULTT r5, lr, r5
401 SMULTB r11, r12, r10
402 SMLABB r10, r12, r11, r10
403 SMULTB r11, r12, r5
404 SMLABB r11, r12, r11, r5
405 PKHTB r10, r11, r10, ASR #16
406 SSUB16 r5, r4, r10
407 SADD16 r4, r4, r10
408#else
409 SBFX r10, r5, #0, #16
410 SBFX r11, lr, #16, #16
411 ASR r5, r5, #16
412 MUL r10, r11, r10
413 MUL r5, r11, r5
414 MOV r12, #0xcff
415 MUL r11, r12, r10
416 MOV r12, #0xd01
417 SBFX r11, r11, #0, #16
418 MLA r10, r12, r11, r10
419 MOV r12, #0xcff
420 SBFX r11, r5, #0, #16
421 MUL r11, r12, r11
422 MOV r12, #0xd01
423 SBFX r11, r11, #0, #16
424 MLA r11, r12, r11, r5
425 SUB r5, r4, r11
426 ADD r4, r4, r11
427 SUB r11, r4, r10, LSR #16
428 ADD r10, r4, r10, LSR #16
429 BFI r5, r11, #0, #16
430 BFI r4, r10, #0, #16
431#endif /* !WOLFSSL_ARM_ARCH_7M */
432 LDR lr, [r1, #12]
433#ifndef WOLFSSL_ARM_ARCH_7M
434 SMULBB r10, lr, r7
435 SMULBT r7, lr, r7
436 SMULTB r11, r12, r10
437 SMLABB r10, r12, r11, r10
438 SMULTB r11, r12, r7
439 SMLABB r11, r12, r11, r7
440 PKHTB r10, r11, r10, ASR #16
441 SSUB16 r7, r6, r10
442 SADD16 r6, r6, r10
443#else
444 SBFX r10, r7, #0, #16
445 SBFX r11, lr, #0, #16
446 ASR r7, r7, #16
447 MUL r10, r11, r10
448 MUL r7, r11, r7
449 MOV r12, #0xcff
450 MUL r11, r12, r10
451 MOV r12, #0xd01
452 SBFX r11, r11, #0, #16
453 MLA r10, r12, r11, r10
454 MOV r12, #0xcff
455 SBFX r11, r7, #0, #16
456 MUL r11, r12, r11
457 MOV r12, #0xd01
458 SBFX r11, r11, #0, #16
459 MLA r11, r12, r11, r7
460 SUB r7, r6, r11
461 ADD r6, r6, r11
462 SUB r11, r6, r10, LSR #16
463 ADD r10, r6, r10, LSR #16
464 BFI r7, r11, #0, #16
465 BFI r6, r10, #0, #16
466#endif /* !WOLFSSL_ARM_ARCH_7M */
467#ifndef WOLFSSL_ARM_ARCH_7M
468 SMULTB r10, lr, r9
469 SMULTT r9, lr, r9
470 SMULTB r11, r12, r10
471 SMLABB r10, r12, r11, r10
472 SMULTB r11, r12, r9
473 SMLABB r11, r12, r11, r9
474 PKHTB r10, r11, r10, ASR #16
475 SSUB16 r9, r8, r10
476 SADD16 r8, r8, r10
477#else
478 SBFX r10, r9, #0, #16
479 SBFX r11, lr, #16, #16
480 ASR r9, r9, #16
481 MUL r10, r11, r10
482 MUL r9, r11, r9
483 MOV r12, #0xcff
484 MUL r11, r12, r10
485 MOV r12, #0xd01
486 SBFX r11, r11, #0, #16
487 MLA r10, r12, r11, r10
488 MOV r12, #0xcff
489 SBFX r11, r9, #0, #16
490 MUL r11, r12, r11
491 MOV r12, #0xd01
492 SBFX r11, r11, #0, #16
493 MLA r11, r12, r11, r9
494 SUB r9, r8, r11
495 ADD r8, r8, r11
496 SUB r11, r8, r10, LSR #16
497 ADD r10, r8, r10, LSR #16
498 BFI r9, r11, #0, #16
499 BFI r8, r10, #0, #16
500#endif /* !WOLFSSL_ARM_ARCH_7M */
501 STR r2, [r0]
502 STR r3, [r0, #64]
503 STR r4, [r0, #128]
504 STR r5, [r0, #192]
505 STR r6, [r0, #256]
506 STR r7, [r0, #320]
507 STR r8, [r0, #384]
508 STR r9, [r0, #448]
509 LDR r2, [sp]
510 SUBS r2, r2, #0x1
511 ADD r0, r0, #0x4
512#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
513 BNE L_mlkem_thumb2_ntt_loop_123
514#else
515 BNE.N L_mlkem_thumb2_ntt_loop_123
516#endif
517 SUB r0, r0, #0x40
518 MOV r3, #0x0
519L_mlkem_thumb2_ntt_loop_4_j:
520 STR r3, [sp, #4]
521 ADD lr, r1, r3, LSR #4
522 MOV r2, #0x4
523 LDR lr, [lr, #16]
524L_mlkem_thumb2_ntt_loop_4_i:
525 STR r2, [sp]
526 LDR r2, [r0]
527 LDR r3, [r0, #16]
528 LDR r4, [r0, #32]
529 LDR r5, [r0, #48]
530 LDR r6, [r0, #64]
531 LDR r7, [r0, #80]
532 LDR r8, [r0, #96]
533 LDR r9, [r0, #112]
534#ifndef WOLFSSL_ARM_ARCH_7M
535 SMULBB r10, lr, r4
536 SMULBT r4, lr, r4
537 SMULTB r11, r12, r10
538 SMLABB r10, r12, r11, r10
539 SMULTB r11, r12, r4
540 SMLABB r11, r12, r11, r4
541 PKHTB r10, r11, r10, ASR #16
542 SSUB16 r4, r2, r10
543 SADD16 r2, r2, r10
544#else
545 SBFX r10, r4, #0, #16
546 SBFX r11, lr, #0, #16
547 ASR r4, r4, #16
548 MUL r10, r11, r10
549 MUL r4, r11, r4
550 MOV r12, #0xcff
551 MUL r11, r12, r10
552 MOV r12, #0xd01
553 SBFX r11, r11, #0, #16
554 MLA r10, r12, r11, r10
555 MOV r12, #0xcff
556 SBFX r11, r4, #0, #16
557 MUL r11, r12, r11
558 MOV r12, #0xd01
559 SBFX r11, r11, #0, #16
560 MLA r11, r12, r11, r4
561 SUB r4, r2, r11
562 ADD r2, r2, r11
563 SUB r11, r2, r10, LSR #16
564 ADD r10, r2, r10, LSR #16
565 BFI r4, r11, #0, #16
566 BFI r2, r10, #0, #16
567#endif /* !WOLFSSL_ARM_ARCH_7M */
568#ifndef WOLFSSL_ARM_ARCH_7M
569 SMULBB r10, lr, r5
570 SMULBT r5, lr, r5
571 SMULTB r11, r12, r10
572 SMLABB r10, r12, r11, r10
573 SMULTB r11, r12, r5
574 SMLABB r11, r12, r11, r5
575 PKHTB r10, r11, r10, ASR #16
576 SSUB16 r5, r3, r10
577 SADD16 r3, r3, r10
578#else
579 SBFX r10, r5, #0, #16
580 SBFX r11, lr, #0, #16
581 ASR r5, r5, #16
582 MUL r10, r11, r10
583 MUL r5, r11, r5
584 MOV r12, #0xcff
585 MUL r11, r12, r10
586 MOV r12, #0xd01
587 SBFX r11, r11, #0, #16
588 MLA r10, r12, r11, r10
589 MOV r12, #0xcff
590 SBFX r11, r5, #0, #16
591 MUL r11, r12, r11
592 MOV r12, #0xd01
593 SBFX r11, r11, #0, #16
594 MLA r11, r12, r11, r5
595 SUB r5, r3, r11
596 ADD r3, r3, r11
597 SUB r11, r3, r10, LSR #16
598 ADD r10, r3, r10, LSR #16
599 BFI r5, r11, #0, #16
600 BFI r3, r10, #0, #16
601#endif /* !WOLFSSL_ARM_ARCH_7M */
602#ifndef WOLFSSL_ARM_ARCH_7M
603 SMULTB r10, lr, r8
604 SMULTT r8, lr, r8
605 SMULTB r11, r12, r10
606 SMLABB r10, r12, r11, r10
607 SMULTB r11, r12, r8
608 SMLABB r11, r12, r11, r8
609 PKHTB r10, r11, r10, ASR #16
610 SSUB16 r8, r6, r10
611 SADD16 r6, r6, r10
612#else
613 SBFX r10, r8, #0, #16
614 SBFX r11, lr, #16, #16
615 ASR r8, r8, #16
616 MUL r10, r11, r10
617 MUL r8, r11, r8
618 MOV r12, #0xcff
619 MUL r11, r12, r10
620 MOV r12, #0xd01
621 SBFX r11, r11, #0, #16
622 MLA r10, r12, r11, r10
623 MOV r12, #0xcff
624 SBFX r11, r8, #0, #16
625 MUL r11, r12, r11
626 MOV r12, #0xd01
627 SBFX r11, r11, #0, #16
628 MLA r11, r12, r11, r8
629 SUB r8, r6, r11
630 ADD r6, r6, r11
631 SUB r11, r6, r10, LSR #16
632 ADD r10, r6, r10, LSR #16
633 BFI r8, r11, #0, #16
634 BFI r6, r10, #0, #16
635#endif /* !WOLFSSL_ARM_ARCH_7M */
636#ifndef WOLFSSL_ARM_ARCH_7M
637 SMULTB r10, lr, r9
638 SMULTT r9, lr, r9
639 SMULTB r11, r12, r10
640 SMLABB r10, r12, r11, r10
641 SMULTB r11, r12, r9
642 SMLABB r11, r12, r11, r9
643 PKHTB r10, r11, r10, ASR #16
644 SSUB16 r9, r7, r10
645 SADD16 r7, r7, r10
646#else
647 SBFX r10, r9, #0, #16
648 SBFX r11, lr, #16, #16
649 ASR r9, r9, #16
650 MUL r10, r11, r10
651 MUL r9, r11, r9
652 MOV r12, #0xcff
653 MUL r11, r12, r10
654 MOV r12, #0xd01
655 SBFX r11, r11, #0, #16
656 MLA r10, r12, r11, r10
657 MOV r12, #0xcff
658 SBFX r11, r9, #0, #16
659 MUL r11, r12, r11
660 MOV r12, #0xd01
661 SBFX r11, r11, #0, #16
662 MLA r11, r12, r11, r9
663 SUB r9, r7, r11
664 ADD r7, r7, r11
665 SUB r11, r7, r10, LSR #16
666 ADD r10, r7, r10, LSR #16
667 BFI r9, r11, #0, #16
668 BFI r7, r10, #0, #16
669#endif /* !WOLFSSL_ARM_ARCH_7M */
670 STR r2, [r0]
671 STR r3, [r0, #16]
672 STR r4, [r0, #32]
673 STR r5, [r0, #48]
674 STR r6, [r0, #64]
675 STR r7, [r0, #80]
676 STR r8, [r0, #96]
677 STR r9, [r0, #112]
678 LDRD r2, r3, [sp]
679 SUBS r2, r2, #0x1
680 ADD r0, r0, #0x4
681#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
682 BNE L_mlkem_thumb2_ntt_loop_4_i
683#else
684 BNE.N L_mlkem_thumb2_ntt_loop_4_i
685#endif
686 ADD r3, r3, #0x40
687 RSBS r10, r3, #0x100
688 ADD r0, r0, #0x70
689#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
690 BNE L_mlkem_thumb2_ntt_loop_4_j
691#else
692 BNE.N L_mlkem_thumb2_ntt_loop_4_j
693#endif
694 SUB r0, r0, #0x200
695 MOV r3, #0x0
696L_mlkem_thumb2_ntt_loop_567:
697 ADD lr, r1, r3, LSR #3
698 STR r3, [sp, #4]
699 LDRH lr, [lr, #32]
700 LDR r2, [r0]
701 LDR r3, [r0, #4]
702 LDR r4, [r0, #8]
703 LDR r5, [r0, #12]
704 LDR r6, [r0, #16]
705 LDR r7, [r0, #20]
706 LDR r8, [r0, #24]
707 LDR r9, [r0, #28]
708#ifndef WOLFSSL_ARM_ARCH_7M
709 SMULBB r10, lr, r6
710 SMULBT r6, lr, r6
711 SMULTB r11, r12, r10
712 SMLABB r10, r12, r11, r10
713 SMULTB r11, r12, r6
714 SMLABB r11, r12, r11, r6
715 PKHTB r10, r11, r10, ASR #16
716 SSUB16 r6, r2, r10
717 SADD16 r2, r2, r10
718#else
719 SBFX r10, r6, #0, #16
720 SBFX r11, lr, #0, #16
721 ASR r6, r6, #16
722 MUL r10, r11, r10
723 MUL r6, r11, r6
724 MOV r12, #0xcff
725 MUL r11, r12, r10
726 MOV r12, #0xd01
727 SBFX r11, r11, #0, #16
728 MLA r10, r12, r11, r10
729 MOV r12, #0xcff
730 SBFX r11, r6, #0, #16
731 MUL r11, r12, r11
732 MOV r12, #0xd01
733 SBFX r11, r11, #0, #16
734 MLA r11, r12, r11, r6
735 SUB r6, r2, r11
736 ADD r2, r2, r11
737 SUB r11, r2, r10, LSR #16
738 ADD r10, r2, r10, LSR #16
739 BFI r6, r11, #0, #16
740 BFI r2, r10, #0, #16
741#endif /* !WOLFSSL_ARM_ARCH_7M */
742#ifndef WOLFSSL_ARM_ARCH_7M
743 SMULBB r10, lr, r7
744 SMULBT r7, lr, r7
745 SMULTB r11, r12, r10
746 SMLABB r10, r12, r11, r10
747 SMULTB r11, r12, r7
748 SMLABB r11, r12, r11, r7
749 PKHTB r10, r11, r10, ASR #16
750 SSUB16 r7, r3, r10
751 SADD16 r3, r3, r10
752#else
753 SBFX r10, r7, #0, #16
754 SBFX r11, lr, #0, #16
755 ASR r7, r7, #16
756 MUL r10, r11, r10
757 MUL r7, r11, r7
758 MOV r12, #0xcff
759 MUL r11, r12, r10
760 MOV r12, #0xd01
761 SBFX r11, r11, #0, #16
762 MLA r10, r12, r11, r10
763 MOV r12, #0xcff
764 SBFX r11, r7, #0, #16
765 MUL r11, r12, r11
766 MOV r12, #0xd01
767 SBFX r11, r11, #0, #16
768 MLA r11, r12, r11, r7
769 SUB r7, r3, r11
770 ADD r3, r3, r11
771 SUB r11, r3, r10, LSR #16
772 ADD r10, r3, r10, LSR #16
773 BFI r7, r11, #0, #16
774 BFI r3, r10, #0, #16
775#endif /* !WOLFSSL_ARM_ARCH_7M */
776#ifndef WOLFSSL_ARM_ARCH_7M
777 SMULBB r10, lr, r8
778 SMULBT r8, lr, r8
779 SMULTB r11, r12, r10
780 SMLABB r10, r12, r11, r10
781 SMULTB r11, r12, r8
782 SMLABB r11, r12, r11, r8
783 PKHTB r10, r11, r10, ASR #16
784 SSUB16 r8, r4, r10
785 SADD16 r4, r4, r10
786#else
787 SBFX r10, r8, #0, #16
788 SBFX r11, lr, #0, #16
789 ASR r8, r8, #16
790 MUL r10, r11, r10
791 MUL r8, r11, r8
792 MOV r12, #0xcff
793 MUL r11, r12, r10
794 MOV r12, #0xd01
795 SBFX r11, r11, #0, #16
796 MLA r10, r12, r11, r10
797 MOV r12, #0xcff
798 SBFX r11, r8, #0, #16
799 MUL r11, r12, r11
800 MOV r12, #0xd01
801 SBFX r11, r11, #0, #16
802 MLA r11, r12, r11, r8
803 SUB r8, r4, r11
804 ADD r4, r4, r11
805 SUB r11, r4, r10, LSR #16
806 ADD r10, r4, r10, LSR #16
807 BFI r8, r11, #0, #16
808 BFI r4, r10, #0, #16
809#endif /* !WOLFSSL_ARM_ARCH_7M */
810#ifndef WOLFSSL_ARM_ARCH_7M
811 SMULBB r10, lr, r9
812 SMULBT r9, lr, r9
813 SMULTB r11, r12, r10
814 SMLABB r10, r12, r11, r10
815 SMULTB r11, r12, r9
816 SMLABB r11, r12, r11, r9
817 PKHTB r10, r11, r10, ASR #16
818 SSUB16 r9, r5, r10
819 SADD16 r5, r5, r10
820#else
821 SBFX r10, r9, #0, #16
822 SBFX r11, lr, #0, #16
823 ASR r9, r9, #16
824 MUL r10, r11, r10
825 MUL r9, r11, r9
826 MOV r12, #0xcff
827 MUL r11, r12, r10
828 MOV r12, #0xd01
829 SBFX r11, r11, #0, #16
830 MLA r10, r12, r11, r10
831 MOV r12, #0xcff
832 SBFX r11, r9, #0, #16
833 MUL r11, r12, r11
834 MOV r12, #0xd01
835 SBFX r11, r11, #0, #16
836 MLA r11, r12, r11, r9
837 SUB r9, r5, r11
838 ADD r5, r5, r11
839 SUB r11, r5, r10, LSR #16
840 ADD r10, r5, r10, LSR #16
841 BFI r9, r11, #0, #16
842 BFI r5, r10, #0, #16
843#endif /* !WOLFSSL_ARM_ARCH_7M */
844 LDR lr, [sp, #4]
845 ADD lr, r1, lr, LSR #2
846 LDR lr, [lr, #64]
847#ifndef WOLFSSL_ARM_ARCH_7M
848 SMULBB r10, lr, r4
849 SMULBT r4, lr, r4
850 SMULTB r11, r12, r10
851 SMLABB r10, r12, r11, r10
852 SMULTB r11, r12, r4
853 SMLABB r11, r12, r11, r4
854 PKHTB r10, r11, r10, ASR #16
855 SSUB16 r4, r2, r10
856 SADD16 r2, r2, r10
857#else
858 SBFX r10, r4, #0, #16
859 SBFX r11, lr, #0, #16
860 ASR r4, r4, #16
861 MUL r10, r11, r10
862 MUL r4, r11, r4
863 MOV r12, #0xcff
864 MUL r11, r12, r10
865 MOV r12, #0xd01
866 SBFX r11, r11, #0, #16
867 MLA r10, r12, r11, r10
868 MOV r12, #0xcff
869 SBFX r11, r4, #0, #16
870 MUL r11, r12, r11
871 MOV r12, #0xd01
872 SBFX r11, r11, #0, #16
873 MLA r11, r12, r11, r4
874 SUB r4, r2, r11
875 ADD r2, r2, r11
876 SUB r11, r2, r10, LSR #16
877 ADD r10, r2, r10, LSR #16
878 BFI r4, r11, #0, #16
879 BFI r2, r10, #0, #16
880#endif /* !WOLFSSL_ARM_ARCH_7M */
881#ifndef WOLFSSL_ARM_ARCH_7M
882 SMULBB r10, lr, r5
883 SMULBT r5, lr, r5
884 SMULTB r11, r12, r10
885 SMLABB r10, r12, r11, r10
886 SMULTB r11, r12, r5
887 SMLABB r11, r12, r11, r5
888 PKHTB r10, r11, r10, ASR #16
889 SSUB16 r5, r3, r10
890 SADD16 r3, r3, r10
891#else
892 SBFX r10, r5, #0, #16
893 SBFX r11, lr, #0, #16
894 ASR r5, r5, #16
895 MUL r10, r11, r10
896 MUL r5, r11, r5
897 MOV r12, #0xcff
898 MUL r11, r12, r10
899 MOV r12, #0xd01
900 SBFX r11, r11, #0, #16
901 MLA r10, r12, r11, r10
902 MOV r12, #0xcff
903 SBFX r11, r5, #0, #16
904 MUL r11, r12, r11
905 MOV r12, #0xd01
906 SBFX r11, r11, #0, #16
907 MLA r11, r12, r11, r5
908 SUB r5, r3, r11
909 ADD r3, r3, r11
910 SUB r11, r3, r10, LSR #16
911 ADD r10, r3, r10, LSR #16
912 BFI r5, r11, #0, #16
913 BFI r3, r10, #0, #16
914#endif /* !WOLFSSL_ARM_ARCH_7M */
915#ifndef WOLFSSL_ARM_ARCH_7M
916 SMULTB r10, lr, r8
917 SMULTT r8, lr, r8
918 SMULTB r11, r12, r10
919 SMLABB r10, r12, r11, r10
920 SMULTB r11, r12, r8
921 SMLABB r11, r12, r11, r8
922 PKHTB r10, r11, r10, ASR #16
923 SSUB16 r8, r6, r10
924 SADD16 r6, r6, r10
925#else
926 SBFX r10, r8, #0, #16
927 SBFX r11, lr, #16, #16
928 ASR r8, r8, #16
929 MUL r10, r11, r10
930 MUL r8, r11, r8
931 MOV r12, #0xcff
932 MUL r11, r12, r10
933 MOV r12, #0xd01
934 SBFX r11, r11, #0, #16
935 MLA r10, r12, r11, r10
936 MOV r12, #0xcff
937 SBFX r11, r8, #0, #16
938 MUL r11, r12, r11
939 MOV r12, #0xd01
940 SBFX r11, r11, #0, #16
941 MLA r11, r12, r11, r8
942 SUB r8, r6, r11
943 ADD r6, r6, r11
944 SUB r11, r6, r10, LSR #16
945 ADD r10, r6, r10, LSR #16
946 BFI r8, r11, #0, #16
947 BFI r6, r10, #0, #16
948#endif /* !WOLFSSL_ARM_ARCH_7M */
949#ifndef WOLFSSL_ARM_ARCH_7M
950 SMULTB r10, lr, r9
951 SMULTT r9, lr, r9
952 SMULTB r11, r12, r10
953 SMLABB r10, r12, r11, r10
954 SMULTB r11, r12, r9
955 SMLABB r11, r12, r11, r9
956 PKHTB r10, r11, r10, ASR #16
957 SSUB16 r9, r7, r10
958 SADD16 r7, r7, r10
959#else
960 SBFX r10, r9, #0, #16
961 SBFX r11, lr, #16, #16
962 ASR r9, r9, #16
963 MUL r10, r11, r10
964 MUL r9, r11, r9
965 MOV r12, #0xcff
966 MUL r11, r12, r10
967 MOV r12, #0xd01
968 SBFX r11, r11, #0, #16
969 MLA r10, r12, r11, r10
970 MOV r12, #0xcff
971 SBFX r11, r9, #0, #16
972 MUL r11, r12, r11
973 MOV r12, #0xd01
974 SBFX r11, r11, #0, #16
975 MLA r11, r12, r11, r9
976 SUB r9, r7, r11
977 ADD r7, r7, r11
978 SUB r11, r7, r10, LSR #16
979 ADD r10, r7, r10, LSR #16
980 BFI r9, r11, #0, #16
981 BFI r7, r10, #0, #16
982#endif /* !WOLFSSL_ARM_ARCH_7M */
983 LDR lr, [sp, #4]
984 ADD lr, r1, lr, LSR #1
985 LDR lr, [lr, #128]
986#ifndef WOLFSSL_ARM_ARCH_7M
987 SMULBB r10, lr, r3
988 SMULBT r3, lr, r3
989 SMULTB r11, r12, r10
990 SMLABB r10, r12, r11, r10
991 SMULTB r11, r12, r3
992 SMLABB r11, r12, r11, r3
993 PKHTB r10, r11, r10, ASR #16
994 SSUB16 r3, r2, r10
995 SADD16 r2, r2, r10
996#else
997 SBFX r10, r3, #0, #16
998 SBFX r11, lr, #0, #16
999 ASR r3, r3, #16
1000 MUL r10, r11, r10
1001 MUL r3, r11, r3
1002 MOV r12, #0xcff
1003 MUL r11, r12, r10
1004 MOV r12, #0xd01
1005 SBFX r11, r11, #0, #16
1006 MLA r10, r12, r11, r10
1007 MOV r12, #0xcff
1008 SBFX r11, r3, #0, #16
1009 MUL r11, r12, r11
1010 MOV r12, #0xd01
1011 SBFX r11, r11, #0, #16
1012 MLA r11, r12, r11, r3
1013 SUB r3, r2, r11
1014 ADD r2, r2, r11
1015 SUB r11, r2, r10, LSR #16
1016 ADD r10, r2, r10, LSR #16
1017 BFI r3, r11, #0, #16
1018 BFI r2, r10, #0, #16
1019#endif /* !WOLFSSL_ARM_ARCH_7M */
1020#ifndef WOLFSSL_ARM_ARCH_7M
1021 SMULTB r10, lr, r5
1022 SMULTT r5, lr, r5
1023 SMULTB r11, r12, r10
1024 SMLABB r10, r12, r11, r10
1025 SMULTB r11, r12, r5
1026 SMLABB r11, r12, r11, r5
1027 PKHTB r10, r11, r10, ASR #16
1028 SSUB16 r5, r4, r10
1029 SADD16 r4, r4, r10
1030#else
1031 SBFX r10, r5, #0, #16
1032 SBFX r11, lr, #16, #16
1033 ASR r5, r5, #16
1034 MUL r10, r11, r10
1035 MUL r5, r11, r5
1036 MOV r12, #0xcff
1037 MUL r11, r12, r10
1038 MOV r12, #0xd01
1039 SBFX r11, r11, #0, #16
1040 MLA r10, r12, r11, r10
1041 MOV r12, #0xcff
1042 SBFX r11, r5, #0, #16
1043 MUL r11, r12, r11
1044 MOV r12, #0xd01
1045 SBFX r11, r11, #0, #16
1046 MLA r11, r12, r11, r5
1047 SUB r5, r4, r11
1048 ADD r4, r4, r11
1049 SUB r11, r4, r10, LSR #16
1050 ADD r10, r4, r10, LSR #16
1051 BFI r5, r11, #0, #16
1052 BFI r4, r10, #0, #16
1053#endif /* !WOLFSSL_ARM_ARCH_7M */
1054 LDR lr, [sp, #4]
1055 ADD lr, r1, lr, LSR #1
1056 LDR lr, [lr, #132]
1057#ifndef WOLFSSL_ARM_ARCH_7M
1058 SMULBB r10, lr, r7
1059 SMULBT r7, lr, r7
1060 SMULTB r11, r12, r10
1061 SMLABB r10, r12, r11, r10
1062 SMULTB r11, r12, r7
1063 SMLABB r11, r12, r11, r7
1064 PKHTB r10, r11, r10, ASR #16
1065 SSUB16 r7, r6, r10
1066 SADD16 r6, r6, r10
1067#else
1068 SBFX r10, r7, #0, #16
1069 SBFX r11, lr, #0, #16
1070 ASR r7, r7, #16
1071 MUL r10, r11, r10
1072 MUL r7, r11, r7
1073 MOV r12, #0xcff
1074 MUL r11, r12, r10
1075 MOV r12, #0xd01
1076 SBFX r11, r11, #0, #16
1077 MLA r10, r12, r11, r10
1078 MOV r12, #0xcff
1079 SBFX r11, r7, #0, #16
1080 MUL r11, r12, r11
1081 MOV r12, #0xd01
1082 SBFX r11, r11, #0, #16
1083 MLA r11, r12, r11, r7
1084 SUB r7, r6, r11
1085 ADD r6, r6, r11
1086 SUB r11, r6, r10, LSR #16
1087 ADD r10, r6, r10, LSR #16
1088 BFI r7, r11, #0, #16
1089 BFI r6, r10, #0, #16
1090#endif /* !WOLFSSL_ARM_ARCH_7M */
1091#ifndef WOLFSSL_ARM_ARCH_7M
1092 SMULTB r10, lr, r9
1093 SMULTT r9, lr, r9
1094 SMULTB r11, r12, r10
1095 SMLABB r10, r12, r11, r10
1096 SMULTB r11, r12, r9
1097 SMLABB r11, r12, r11, r9
1098 PKHTB r10, r11, r10, ASR #16
1099 SSUB16 r9, r8, r10
1100 SADD16 r8, r8, r10
1101#else
1102 SBFX r10, r9, #0, #16
1103 SBFX r11, lr, #16, #16
1104 ASR r9, r9, #16
1105 MUL r10, r11, r10
1106 MUL r9, r11, r9
1107 MOV r12, #0xcff
1108 MUL r11, r12, r10
1109 MOV r12, #0xd01
1110 SBFX r11, r11, #0, #16
1111 MLA r10, r12, r11, r10
1112 MOV r12, #0xcff
1113 SBFX r11, r9, #0, #16
1114 MUL r11, r12, r11
1115 MOV r12, #0xd01
1116 SBFX r11, r11, #0, #16
1117 MLA r11, r12, r11, r9
1118 SUB r9, r8, r11
1119 ADD r8, r8, r11
1120 SUB r11, r8, r10, LSR #16
1121 ADD r10, r8, r10, LSR #16
1122 BFI r9, r11, #0, #16
1123 BFI r8, r10, #0, #16
1124#endif /* !WOLFSSL_ARM_ARCH_7M */
1125#ifndef WOLFSSL_ARM_ARCH_7M
1126 MOV lr, #0xafc0
1127 MOVT lr, #0x13
1128#else
1129 MOV lr, #0x4ebf
1130 MOV r12, #0xd01
1131#endif /* !WOLFSSL_ARM_ARCH_7M */
1132#ifndef WOLFSSL_ARM_ARCH_7M
1133 SMULWB r10, lr, r2
1134 SMULWT r11, lr, r2
1135 SMULBT r10, r12, r10
1136 SMULBT r11, r12, r11
1137 PKHBT r10, r10, r11, LSL #16
1138 SSUB16 r2, r2, r10
1139#else
1140 SBFX r10, r2, #0, #16
1141 SBFX r11, r2, #16, #16
1142 MUL r10, lr, r10
1143 MUL r11, lr, r11
1144 ASR r10, r10, #26
1145 ASR r11, r11, #26
1146 MUL r10, r12, r10
1147 MUL r11, r12, r11
1148 SUB r11, r2, r11, LSL #16
1149 SUB r2, r2, r10
1150 LSR r11, r11, #16
1151 BFI r2, r11, #16, #16
1152#endif /* !WOLFSSL_ARM_ARCH_7M */
1153#ifndef WOLFSSL_ARM_ARCH_7M
1154 SMULWB r10, lr, r3
1155 SMULWT r11, lr, r3
1156 SMULBT r10, r12, r10
1157 SMULBT r11, r12, r11
1158 PKHBT r10, r10, r11, LSL #16
1159 SSUB16 r3, r3, r10
1160#else
1161 SBFX r10, r3, #0, #16
1162 SBFX r11, r3, #16, #16
1163 MUL r10, lr, r10
1164 MUL r11, lr, r11
1165 ASR r10, r10, #26
1166 ASR r11, r11, #26
1167 MUL r10, r12, r10
1168 MUL r11, r12, r11
1169 SUB r11, r3, r11, LSL #16
1170 SUB r3, r3, r10
1171 LSR r11, r11, #16
1172 BFI r3, r11, #16, #16
1173#endif /* !WOLFSSL_ARM_ARCH_7M */
1174#ifndef WOLFSSL_ARM_ARCH_7M
1175 SMULWB r10, lr, r4
1176 SMULWT r11, lr, r4
1177 SMULBT r10, r12, r10
1178 SMULBT r11, r12, r11
1179 PKHBT r10, r10, r11, LSL #16
1180 SSUB16 r4, r4, r10
1181#else
1182 SBFX r10, r4, #0, #16
1183 SBFX r11, r4, #16, #16
1184 MUL r10, lr, r10
1185 MUL r11, lr, r11
1186 ASR r10, r10, #26
1187 ASR r11, r11, #26
1188 MUL r10, r12, r10
1189 MUL r11, r12, r11
1190 SUB r11, r4, r11, LSL #16
1191 SUB r4, r4, r10
1192 LSR r11, r11, #16
1193 BFI r4, r11, #16, #16
1194#endif /* !WOLFSSL_ARM_ARCH_7M */
1195#ifndef WOLFSSL_ARM_ARCH_7M
1196 SMULWB r10, lr, r5
1197 SMULWT r11, lr, r5
1198 SMULBT r10, r12, r10
1199 SMULBT r11, r12, r11
1200 PKHBT r10, r10, r11, LSL #16
1201 SSUB16 r5, r5, r10
1202#else
1203 SBFX r10, r5, #0, #16
1204 SBFX r11, r5, #16, #16
1205 MUL r10, lr, r10
1206 MUL r11, lr, r11
1207 ASR r10, r10, #26
1208 ASR r11, r11, #26
1209 MUL r10, r12, r10
1210 MUL r11, r12, r11
1211 SUB r11, r5, r11, LSL #16
1212 SUB r5, r5, r10
1213 LSR r11, r11, #16
1214 BFI r5, r11, #16, #16
1215#endif /* !WOLFSSL_ARM_ARCH_7M */
1216#ifndef WOLFSSL_ARM_ARCH_7M
1217 SMULWB r10, lr, r6
1218 SMULWT r11, lr, r6
1219 SMULBT r10, r12, r10
1220 SMULBT r11, r12, r11
1221 PKHBT r10, r10, r11, LSL #16
1222 SSUB16 r6, r6, r10
1223#else
1224 SBFX r10, r6, #0, #16
1225 SBFX r11, r6, #16, #16
1226 MUL r10, lr, r10
1227 MUL r11, lr, r11
1228 ASR r10, r10, #26
1229 ASR r11, r11, #26
1230 MUL r10, r12, r10
1231 MUL r11, r12, r11
1232 SUB r11, r6, r11, LSL #16
1233 SUB r6, r6, r10
1234 LSR r11, r11, #16
1235 BFI r6, r11, #16, #16
1236#endif /* !WOLFSSL_ARM_ARCH_7M */
1237#ifndef WOLFSSL_ARM_ARCH_7M
1238 SMULWB r10, lr, r7
1239 SMULWT r11, lr, r7
1240 SMULBT r10, r12, r10
1241 SMULBT r11, r12, r11
1242 PKHBT r10, r10, r11, LSL #16
1243 SSUB16 r7, r7, r10
1244#else
1245 SBFX r10, r7, #0, #16
1246 SBFX r11, r7, #16, #16
1247 MUL r10, lr, r10
1248 MUL r11, lr, r11
1249 ASR r10, r10, #26
1250 ASR r11, r11, #26
1251 MUL r10, r12, r10
1252 MUL r11, r12, r11
1253 SUB r11, r7, r11, LSL #16
1254 SUB r7, r7, r10
1255 LSR r11, r11, #16
1256 BFI r7, r11, #16, #16
1257#endif /* !WOLFSSL_ARM_ARCH_7M */
1258#ifndef WOLFSSL_ARM_ARCH_7M
1259 SMULWB r10, lr, r8
1260 SMULWT r11, lr, r8
1261 SMULBT r10, r12, r10
1262 SMULBT r11, r12, r11
1263 PKHBT r10, r10, r11, LSL #16
1264 SSUB16 r8, r8, r10
1265#else
1266 SBFX r10, r8, #0, #16
1267 SBFX r11, r8, #16, #16
1268 MUL r10, lr, r10
1269 MUL r11, lr, r11
1270 ASR r10, r10, #26
1271 ASR r11, r11, #26
1272 MUL r10, r12, r10
1273 MUL r11, r12, r11
1274 SUB r11, r8, r11, LSL #16
1275 SUB r8, r8, r10
1276 LSR r11, r11, #16
1277 BFI r8, r11, #16, #16
1278#endif /* !WOLFSSL_ARM_ARCH_7M */
1279#ifndef WOLFSSL_ARM_ARCH_7M
1280 SMULWB r10, lr, r9
1281 SMULWT r11, lr, r9
1282 SMULBT r10, r12, r10
1283 SMULBT r11, r12, r11
1284 PKHBT r10, r10, r11, LSL #16
1285 SSUB16 r9, r9, r10
1286#else
1287 SBFX r10, r9, #0, #16
1288 SBFX r11, r9, #16, #16
1289 MUL r10, lr, r10
1290 MUL r11, lr, r11
1291 ASR r10, r10, #26
1292 ASR r11, r11, #26
1293 MUL r10, r12, r10
1294 MUL r11, r12, r11
1295 SUB r11, r9, r11, LSL #16
1296 SUB r9, r9, r10
1297 LSR r11, r11, #16
1298 BFI r9, r11, #16, #16
1299#endif /* !WOLFSSL_ARM_ARCH_7M */
1300#ifndef WOLFSSL_ARM_ARCH_7M
1301 MOV r12, #0xd01
1302 MOVT r12, #0xcff
1303#endif /* !WOLFSSL_ARM_ARCH_7M */
1304 STR r2, [r0]
1305 STR r3, [r0, #4]
1306 STR r4, [r0, #8]
1307 STR r5, [r0, #12]
1308 STR r6, [r0, #16]
1309 STR r7, [r0, #20]
1310 STR r8, [r0, #24]
1311 STR r9, [r0, #28]
1312 LDR r3, [sp, #4]
1313 ADD r3, r3, #0x10
1314 RSBS r10, r3, #0x100
1315 ADD r0, r0, #0x20
1316#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
1317 BNE L_mlkem_thumb2_ntt_loop_567
1318#else
1319 BNE.N L_mlkem_thumb2_ntt_loop_567
1320#endif
1321 ADD sp, sp, #0x8
1322 POP {r4, r5, r6, r7, r8, r9, r10, r11, pc}
1323 /* Cycle Count = 1270 */
1324 .size mlkem_thumb2_ntt,.-mlkem_thumb2_ntt
1325#ifndef __APPLE__
1326 .text
1327 .type L_mlkem_invntt_zetas_inv, %object
1328 .size L_mlkem_invntt_zetas_inv, 256
1329#else
1330 .section __DATA,__data
1331#endif /* __APPLE__ */
1332 /* 4-byte aligned, 32-bit aligned */
1333#ifndef __APPLE__
1334 .align 2
1335#else
1336 .p2align 2
1337#endif /* __APPLE__ */
1338L_mlkem_invntt_zetas_inv:
1339 .short 0x06a5,0x070f,0x05b4,0x0943,0x0922,0x091d,0x0134,0x006c
1340 .short 0x0b23,0x0366,0x0356,0x05e6,0x09e7,0x04fe,0x05fa,0x04a1
1341 .short 0x067b,0x04a3,0x0c25,0x036a,0x0537,0x083f,0x0088,0x04bf
1342 .short 0x0b81,0x05b9,0x0505,0x07d7,0x0a9f,0x0aa6,0x08b8,0x09d0
1343 .short 0x004b,0x009c,0x0bb8,0x0b5f,0x0ba4,0x0368,0x0a7d,0x0636
1344 .short 0x08a2,0x025a,0x0736,0x0309,0x0093,0x087a,0x09f7,0x00f6
1345 .short 0x068c,0x06db,0x01cc,0x0123,0x00eb,0x0c50,0x0ab6,0x0b5b
1346 .short 0x0c98,0x06f3,0x099a,0x04e3,0x09b6,0x0ad6,0x0b53,0x044f
1347 .short 0x04fb,0x0a5c,0x0429,0x0b41,0x02d5,0x05e4,0x0940,0x018e
1348 .short 0x03b7,0x00f7,0x058d,0x0c96,0x09c3,0x010f,0x005a,0x0355
1349 .short 0x0744,0x0c83,0x048a,0x0652,0x029a,0x0140,0x0008,0x0afd
1350 .short 0x0608,0x011a,0x072e,0x050d,0x090a,0x0228,0x0a75,0x083a
1351 .short 0x0623,0x00cd,0x0b66,0x0606,0x0aa1,0x0a25,0x0908,0x02a9
1352 .short 0x0082,0x0642,0x074f,0x033d,0x0b82,0x0bf9,0x052d,0x0ac4
1353 .short 0x0745,0x05c2,0x04b2,0x093f,0x0c4b,0x06d8,0x0a93,0x00ab
1354 .short 0x0c37,0x0be2,0x0773,0x072c,0x05ed,0x0167,0x02f6,0x05a1
1355 .text
1356 .align 4
1357 .globl mlkem_thumb2_invntt
1358 .type mlkem_thumb2_invntt, %function
1359mlkem_thumb2_invntt:
1360 PUSH {r4, r5, r6, r7, r8, r9, r10, r11, lr}
1361 SUB sp, sp, #0x8
1362 ADR r1, L_mlkem_invntt_zetas_inv
1363#ifndef WOLFSSL_ARM_ARCH_7M
1364 MOV r12, #0xd01
1365 MOVT r12, #0xcff
1366#endif /* !WOLFSSL_ARM_ARCH_7M */
1367 MOV r3, #0x0
1368L_mlkem_invntt_loop_765:
1369 ADD lr, r1, r3, LSR #1
1370 STR r3, [sp, #4]
1371 LDR r2, [r0]
1372 LDR r3, [r0, #4]
1373 LDR r4, [r0, #8]
1374 LDR r5, [r0, #12]
1375 LDR r6, [r0, #16]
1376 LDR r7, [r0, #20]
1377 LDR r8, [r0, #24]
1378 LDR r9, [r0, #28]
1379 LDR lr, [lr]
1380#ifndef WOLFSSL_ARM_ARCH_7M
1381 SSUB16 r10, r2, r3
1382 SADD16 r2, r2, r3
1383 SMULBT r3, lr, r10
1384 SMULBB r10, lr, r10
1385 SMULTB r11, r12, r10
1386 SMLABB r10, r12, r11, r10
1387 SMULTB r11, r12, r3
1388 SMLABB r3, r12, r11, r3
1389 PKHTB r3, r3, r10, ASR #16
1390#else
1391 SUB r11, r2, r3
1392 ADD r12, r2, r3
1393 BFC r3, #0, #16
1394 BFC r2, #0, #16
1395 SUB r10, r2, r3
1396 ADD r2, r2, r3
1397 BFI r10, r11, #0, #16
1398 BFI r2, r12, #0, #16
1399 SBFX r11, lr, #0, #16
1400 ASR r12, r10, #16
1401 MUL r3, r11, r12
1402 SBFX r10, r10, #0, #16
1403 MUL r10, r11, r10
1404 MOV r12, #0xcff
1405 SBFX r11, r10, #0, #16
1406 MUL r11, r12, r11
1407 MOV r12, #0xd01
1408 SBFX r11, r11, #0, #16
1409 MLA r10, r12, r11, r10
1410 MOV r12, #0xcff
1411 SBFX r11, r3, #0, #16
1412 MUL r11, r12, r11
1413 MOV r12, #0xd01
1414 SBFX r11, r11, #0, #16
1415 LSR r10, r10, #16
1416 MLA r3, r12, r11, r3
1417 BFI r3, r10, #0, #16
1418#endif /* !WOLFSSL_ARM_ARCH_7M */
1419#ifndef WOLFSSL_ARM_ARCH_7M
1420 SSUB16 r10, r4, r5
1421 SADD16 r4, r4, r5
1422 SMULTT r5, lr, r10
1423 SMULTB r10, lr, r10
1424 SMULTB r11, r12, r10
1425 SMLABB r10, r12, r11, r10
1426 SMULTB r11, r12, r5
1427 SMLABB r5, r12, r11, r5
1428 PKHTB r5, r5, r10, ASR #16
1429#else
1430 SUB r11, r4, r5
1431 ADD r12, r4, r5
1432 BFC r5, #0, #16
1433 BFC r4, #0, #16
1434 SUB r10, r4, r5
1435 ADD r4, r4, r5
1436 BFI r10, r11, #0, #16
1437 BFI r4, r12, #0, #16
1438 SBFX r11, lr, #16, #16
1439 ASR r12, r10, #16
1440 MUL r5, r11, r12
1441 SBFX r10, r10, #0, #16
1442 MUL r10, r11, r10
1443 MOV r12, #0xcff
1444 SBFX r11, r10, #0, #16
1445 MUL r11, r12, r11
1446 MOV r12, #0xd01
1447 SBFX r11, r11, #0, #16
1448 MLA r10, r12, r11, r10
1449 MOV r12, #0xcff
1450 SBFX r11, r5, #0, #16
1451 MUL r11, r12, r11
1452 MOV r12, #0xd01
1453 SBFX r11, r11, #0, #16
1454 LSR r10, r10, #16
1455 MLA r5, r12, r11, r5
1456 BFI r5, r10, #0, #16
1457#endif /* !WOLFSSL_ARM_ARCH_7M */
1458 LDR lr, [sp, #4]
1459 ADD lr, r1, lr, LSR #1
1460 LDR lr, [lr, #4]
1461#ifndef WOLFSSL_ARM_ARCH_7M
1462 SSUB16 r10, r6, r7
1463 SADD16 r6, r6, r7
1464 SMULBT r7, lr, r10
1465 SMULBB r10, lr, r10
1466 SMULTB r11, r12, r10
1467 SMLABB r10, r12, r11, r10
1468 SMULTB r11, r12, r7
1469 SMLABB r7, r12, r11, r7
1470 PKHTB r7, r7, r10, ASR #16
1471#else
1472 SUB r11, r6, r7
1473 ADD r12, r6, r7
1474 BFC r7, #0, #16
1475 BFC r6, #0, #16
1476 SUB r10, r6, r7
1477 ADD r6, r6, r7
1478 BFI r10, r11, #0, #16
1479 BFI r6, r12, #0, #16
1480 SBFX r11, lr, #0, #16
1481 ASR r12, r10, #16
1482 MUL r7, r11, r12
1483 SBFX r10, r10, #0, #16
1484 MUL r10, r11, r10
1485 MOV r12, #0xcff
1486 SBFX r11, r10, #0, #16
1487 MUL r11, r12, r11
1488 MOV r12, #0xd01
1489 SBFX r11, r11, #0, #16
1490 MLA r10, r12, r11, r10
1491 MOV r12, #0xcff
1492 SBFX r11, r7, #0, #16
1493 MUL r11, r12, r11
1494 MOV r12, #0xd01
1495 SBFX r11, r11, #0, #16
1496 LSR r10, r10, #16
1497 MLA r7, r12, r11, r7
1498 BFI r7, r10, #0, #16
1499#endif /* !WOLFSSL_ARM_ARCH_7M */
1500#ifndef WOLFSSL_ARM_ARCH_7M
1501 SSUB16 r10, r8, r9
1502 SADD16 r8, r8, r9
1503 SMULTT r9, lr, r10
1504 SMULTB r10, lr, r10
1505 SMULTB r11, r12, r10
1506 SMLABB r10, r12, r11, r10
1507 SMULTB r11, r12, r9
1508 SMLABB r9, r12, r11, r9
1509 PKHTB r9, r9, r10, ASR #16
1510#else
1511 SUB r11, r8, r9
1512 ADD r12, r8, r9
1513 BFC r9, #0, #16
1514 BFC r8, #0, #16
1515 SUB r10, r8, r9
1516 ADD r8, r8, r9
1517 BFI r10, r11, #0, #16
1518 BFI r8, r12, #0, #16
1519 SBFX r11, lr, #16, #16
1520 ASR r12, r10, #16
1521 MUL r9, r11, r12
1522 SBFX r10, r10, #0, #16
1523 MUL r10, r11, r10
1524 MOV r12, #0xcff
1525 SBFX r11, r10, #0, #16
1526 MUL r11, r12, r11
1527 MOV r12, #0xd01
1528 SBFX r11, r11, #0, #16
1529 MLA r10, r12, r11, r10
1530 MOV r12, #0xcff
1531 SBFX r11, r9, #0, #16
1532 MUL r11, r12, r11
1533 MOV r12, #0xd01
1534 SBFX r11, r11, #0, #16
1535 LSR r10, r10, #16
1536 MLA r9, r12, r11, r9
1537 BFI r9, r10, #0, #16
1538#endif /* !WOLFSSL_ARM_ARCH_7M */
1539 LDR lr, [sp, #4]
1540 ADD lr, r1, lr, LSR #2
1541 LDR lr, [lr, #128]
1542#ifndef WOLFSSL_ARM_ARCH_7M
1543 SSUB16 r10, r2, r4
1544 SADD16 r2, r2, r4
1545 SMULBT r4, lr, r10
1546 SMULBB r10, lr, r10
1547 SMULTB r11, r12, r10
1548 SMLABB r10, r12, r11, r10
1549 SMULTB r11, r12, r4
1550 SMLABB r4, r12, r11, r4
1551 PKHTB r4, r4, r10, ASR #16
1552#else
1553 SUB r11, r2, r4
1554 ADD r12, r2, r4
1555 BFC r4, #0, #16
1556 BFC r2, #0, #16
1557 SUB r10, r2, r4
1558 ADD r2, r2, r4
1559 BFI r10, r11, #0, #16
1560 BFI r2, r12, #0, #16
1561 SBFX r11, lr, #0, #16
1562 ASR r12, r10, #16
1563 MUL r4, r11, r12
1564 SBFX r10, r10, #0, #16
1565 MUL r10, r11, r10
1566 MOV r12, #0xcff
1567 SBFX r11, r10, #0, #16
1568 MUL r11, r12, r11
1569 MOV r12, #0xd01
1570 SBFX r11, r11, #0, #16
1571 MLA r10, r12, r11, r10
1572 MOV r12, #0xcff
1573 SBFX r11, r4, #0, #16
1574 MUL r11, r12, r11
1575 MOV r12, #0xd01
1576 SBFX r11, r11, #0, #16
1577 LSR r10, r10, #16
1578 MLA r4, r12, r11, r4
1579 BFI r4, r10, #0, #16
1580#endif /* !WOLFSSL_ARM_ARCH_7M */
1581#ifndef WOLFSSL_ARM_ARCH_7M
1582 SSUB16 r10, r3, r5
1583 SADD16 r3, r3, r5
1584 SMULBT r5, lr, r10
1585 SMULBB r10, lr, r10
1586 SMULTB r11, r12, r10
1587 SMLABB r10, r12, r11, r10
1588 SMULTB r11, r12, r5
1589 SMLABB r5, r12, r11, r5
1590 PKHTB r5, r5, r10, ASR #16
1591#else
1592 SUB r11, r3, r5
1593 ADD r12, r3, r5
1594 BFC r5, #0, #16
1595 BFC r3, #0, #16
1596 SUB r10, r3, r5
1597 ADD r3, r3, r5
1598 BFI r10, r11, #0, #16
1599 BFI r3, r12, #0, #16
1600 SBFX r11, lr, #0, #16
1601 ASR r12, r10, #16
1602 MUL r5, r11, r12
1603 SBFX r10, r10, #0, #16
1604 MUL r10, r11, r10
1605 MOV r12, #0xcff
1606 SBFX r11, r10, #0, #16
1607 MUL r11, r12, r11
1608 MOV r12, #0xd01
1609 SBFX r11, r11, #0, #16
1610 MLA r10, r12, r11, r10
1611 MOV r12, #0xcff
1612 SBFX r11, r5, #0, #16
1613 MUL r11, r12, r11
1614 MOV r12, #0xd01
1615 SBFX r11, r11, #0, #16
1616 LSR r10, r10, #16
1617 MLA r5, r12, r11, r5
1618 BFI r5, r10, #0, #16
1619#endif /* !WOLFSSL_ARM_ARCH_7M */
1620#ifndef WOLFSSL_ARM_ARCH_7M
1621 SSUB16 r10, r6, r8
1622 SADD16 r6, r6, r8
1623 SMULTT r8, lr, r10
1624 SMULTB r10, lr, r10
1625 SMULTB r11, r12, r10
1626 SMLABB r10, r12, r11, r10
1627 SMULTB r11, r12, r8
1628 SMLABB r8, r12, r11, r8
1629 PKHTB r8, r8, r10, ASR #16
1630#else
1631 SUB r11, r6, r8
1632 ADD r12, r6, r8
1633 BFC r8, #0, #16
1634 BFC r6, #0, #16
1635 SUB r10, r6, r8
1636 ADD r6, r6, r8
1637 BFI r10, r11, #0, #16
1638 BFI r6, r12, #0, #16
1639 SBFX r11, lr, #16, #16
1640 ASR r12, r10, #16
1641 MUL r8, r11, r12
1642 SBFX r10, r10, #0, #16
1643 MUL r10, r11, r10
1644 MOV r12, #0xcff
1645 SBFX r11, r10, #0, #16
1646 MUL r11, r12, r11
1647 MOV r12, #0xd01
1648 SBFX r11, r11, #0, #16
1649 MLA r10, r12, r11, r10
1650 MOV r12, #0xcff
1651 SBFX r11, r8, #0, #16
1652 MUL r11, r12, r11
1653 MOV r12, #0xd01
1654 SBFX r11, r11, #0, #16
1655 LSR r10, r10, #16
1656 MLA r8, r12, r11, r8
1657 BFI r8, r10, #0, #16
1658#endif /* !WOLFSSL_ARM_ARCH_7M */
1659#ifndef WOLFSSL_ARM_ARCH_7M
1660 SSUB16 r10, r7, r9
1661 SADD16 r7, r7, r9
1662 SMULTT r9, lr, r10
1663 SMULTB r10, lr, r10
1664 SMULTB r11, r12, r10
1665 SMLABB r10, r12, r11, r10
1666 SMULTB r11, r12, r9
1667 SMLABB r9, r12, r11, r9
1668 PKHTB r9, r9, r10, ASR #16
1669#else
1670 SUB r11, r7, r9
1671 ADD r12, r7, r9
1672 BFC r9, #0, #16
1673 BFC r7, #0, #16
1674 SUB r10, r7, r9
1675 ADD r7, r7, r9
1676 BFI r10, r11, #0, #16
1677 BFI r7, r12, #0, #16
1678 SBFX r11, lr, #16, #16
1679 ASR r12, r10, #16
1680 MUL r9, r11, r12
1681 SBFX r10, r10, #0, #16
1682 MUL r10, r11, r10
1683 MOV r12, #0xcff
1684 SBFX r11, r10, #0, #16
1685 MUL r11, r12, r11
1686 MOV r12, #0xd01
1687 SBFX r11, r11, #0, #16
1688 MLA r10, r12, r11, r10
1689 MOV r12, #0xcff
1690 SBFX r11, r9, #0, #16
1691 MUL r11, r12, r11
1692 MOV r12, #0xd01
1693 SBFX r11, r11, #0, #16
1694 LSR r10, r10, #16
1695 MLA r9, r12, r11, r9
1696 BFI r9, r10, #0, #16
1697#endif /* !WOLFSSL_ARM_ARCH_7M */
1698 LDR lr, [sp, #4]
1699 ADD lr, r1, lr, LSR #3
1700 LDR lr, [lr, #192]
1701#ifndef WOLFSSL_ARM_ARCH_7M
1702 SSUB16 r10, r2, r6
1703 SADD16 r2, r2, r6
1704 SMULBT r6, lr, r10
1705 SMULBB r10, lr, r10
1706 SMULTB r11, r12, r10
1707 SMLABB r10, r12, r11, r10
1708 SMULTB r11, r12, r6
1709 SMLABB r6, r12, r11, r6
1710 PKHTB r6, r6, r10, ASR #16
1711#else
1712 SUB r11, r2, r6
1713 ADD r12, r2, r6
1714 BFC r6, #0, #16
1715 BFC r2, #0, #16
1716 SUB r10, r2, r6
1717 ADD r2, r2, r6
1718 BFI r10, r11, #0, #16
1719 BFI r2, r12, #0, #16
1720 SBFX r11, lr, #0, #16
1721 ASR r12, r10, #16
1722 MUL r6, r11, r12
1723 SBFX r10, r10, #0, #16
1724 MUL r10, r11, r10
1725 MOV r12, #0xcff
1726 SBFX r11, r10, #0, #16
1727 MUL r11, r12, r11
1728 MOV r12, #0xd01
1729 SBFX r11, r11, #0, #16
1730 MLA r10, r12, r11, r10
1731 MOV r12, #0xcff
1732 SBFX r11, r6, #0, #16
1733 MUL r11, r12, r11
1734 MOV r12, #0xd01
1735 SBFX r11, r11, #0, #16
1736 LSR r10, r10, #16
1737 MLA r6, r12, r11, r6
1738 BFI r6, r10, #0, #16
1739#endif /* !WOLFSSL_ARM_ARCH_7M */
1740#ifndef WOLFSSL_ARM_ARCH_7M
1741 SSUB16 r10, r3, r7
1742 SADD16 r3, r3, r7
1743 SMULBT r7, lr, r10
1744 SMULBB r10, lr, r10
1745 SMULTB r11, r12, r10
1746 SMLABB r10, r12, r11, r10
1747 SMULTB r11, r12, r7
1748 SMLABB r7, r12, r11, r7
1749 PKHTB r7, r7, r10, ASR #16
1750#else
1751 SUB r11, r3, r7
1752 ADD r12, r3, r7
1753 BFC r7, #0, #16
1754 BFC r3, #0, #16
1755 SUB r10, r3, r7
1756 ADD r3, r3, r7
1757 BFI r10, r11, #0, #16
1758 BFI r3, r12, #0, #16
1759 SBFX r11, lr, #0, #16
1760 ASR r12, r10, #16
1761 MUL r7, r11, r12
1762 SBFX r10, r10, #0, #16
1763 MUL r10, r11, r10
1764 MOV r12, #0xcff
1765 SBFX r11, r10, #0, #16
1766 MUL r11, r12, r11
1767 MOV r12, #0xd01
1768 SBFX r11, r11, #0, #16
1769 MLA r10, r12, r11, r10
1770 MOV r12, #0xcff
1771 SBFX r11, r7, #0, #16
1772 MUL r11, r12, r11
1773 MOV r12, #0xd01
1774 SBFX r11, r11, #0, #16
1775 LSR r10, r10, #16
1776 MLA r7, r12, r11, r7
1777 BFI r7, r10, #0, #16
1778#endif /* !WOLFSSL_ARM_ARCH_7M */
1779#ifndef WOLFSSL_ARM_ARCH_7M
1780 SSUB16 r10, r4, r8
1781 SADD16 r4, r4, r8
1782 SMULBT r8, lr, r10
1783 SMULBB r10, lr, r10
1784 SMULTB r11, r12, r10
1785 SMLABB r10, r12, r11, r10
1786 SMULTB r11, r12, r8
1787 SMLABB r8, r12, r11, r8
1788 PKHTB r8, r8, r10, ASR #16
1789#else
1790 SUB r11, r4, r8
1791 ADD r12, r4, r8
1792 BFC r8, #0, #16
1793 BFC r4, #0, #16
1794 SUB r10, r4, r8
1795 ADD r4, r4, r8
1796 BFI r10, r11, #0, #16
1797 BFI r4, r12, #0, #16
1798 SBFX r11, lr, #0, #16
1799 ASR r12, r10, #16
1800 MUL r8, r11, r12
1801 SBFX r10, r10, #0, #16
1802 MUL r10, r11, r10
1803 MOV r12, #0xcff
1804 SBFX r11, r10, #0, #16
1805 MUL r11, r12, r11
1806 MOV r12, #0xd01
1807 SBFX r11, r11, #0, #16
1808 MLA r10, r12, r11, r10
1809 MOV r12, #0xcff
1810 SBFX r11, r8, #0, #16
1811 MUL r11, r12, r11
1812 MOV r12, #0xd01
1813 SBFX r11, r11, #0, #16
1814 LSR r10, r10, #16
1815 MLA r8, r12, r11, r8
1816 BFI r8, r10, #0, #16
1817#endif /* !WOLFSSL_ARM_ARCH_7M */
1818#ifndef WOLFSSL_ARM_ARCH_7M
1819 SSUB16 r10, r5, r9
1820 SADD16 r5, r5, r9
1821 SMULBT r9, lr, r10
1822 SMULBB r10, lr, r10
1823 SMULTB r11, r12, r10
1824 SMLABB r10, r12, r11, r10
1825 SMULTB r11, r12, r9
1826 SMLABB r9, r12, r11, r9
1827 PKHTB r9, r9, r10, ASR #16
1828#else
1829 SUB r11, r5, r9
1830 ADD r12, r5, r9
1831 BFC r9, #0, #16
1832 BFC r5, #0, #16
1833 SUB r10, r5, r9
1834 ADD r5, r5, r9
1835 BFI r10, r11, #0, #16
1836 BFI r5, r12, #0, #16
1837 SBFX r11, lr, #0, #16
1838 ASR r12, r10, #16
1839 MUL r9, r11, r12
1840 SBFX r10, r10, #0, #16
1841 MUL r10, r11, r10
1842 MOV r12, #0xcff
1843 SBFX r11, r10, #0, #16
1844 MUL r11, r12, r11
1845 MOV r12, #0xd01
1846 SBFX r11, r11, #0, #16
1847 MLA r10, r12, r11, r10
1848 MOV r12, #0xcff
1849 SBFX r11, r9, #0, #16
1850 MUL r11, r12, r11
1851 MOV r12, #0xd01
1852 SBFX r11, r11, #0, #16
1853 LSR r10, r10, #16
1854 MLA r9, r12, r11, r9
1855 BFI r9, r10, #0, #16
1856#endif /* !WOLFSSL_ARM_ARCH_7M */
1857#ifndef WOLFSSL_ARM_ARCH_7M
1858 MOV lr, #0xafc0
1859 MOVT lr, #0x13
1860#else
1861 MOV lr, #0x4ebf
1862#endif /* !WOLFSSL_ARM_ARCH_7M */
1863#ifndef WOLFSSL_ARM_ARCH_7M
1864 SMULWB r10, lr, r2
1865 SMULWT r11, lr, r2
1866 SMULBT r10, r12, r10
1867 SMULBT r11, r12, r11
1868 PKHBT r10, r10, r11, LSL #16
1869 SSUB16 r2, r2, r10
1870#else
1871 SBFX r10, r2, #0, #16
1872 SBFX r11, r2, #16, #16
1873 MUL r10, lr, r10
1874 MUL r11, lr, r11
1875 ASR r10, r10, #26
1876 ASR r11, r11, #26
1877 MUL r10, r12, r10
1878 MUL r11, r12, r11
1879 SUB r11, r2, r11, LSL #16
1880 SUB r2, r2, r10
1881 LSR r11, r11, #16
1882 BFI r2, r11, #16, #16
1883#endif /* !WOLFSSL_ARM_ARCH_7M */
1884#ifndef WOLFSSL_ARM_ARCH_7M
1885 SMULWB r10, lr, r3
1886 SMULWT r11, lr, r3
1887 SMULBT r10, r12, r10
1888 SMULBT r11, r12, r11
1889 PKHBT r10, r10, r11, LSL #16
1890 SSUB16 r3, r3, r10
1891#else
1892 SBFX r10, r3, #0, #16
1893 SBFX r11, r3, #16, #16
1894 MUL r10, lr, r10
1895 MUL r11, lr, r11
1896 ASR r10, r10, #26
1897 ASR r11, r11, #26
1898 MUL r10, r12, r10
1899 MUL r11, r12, r11
1900 SUB r11, r3, r11, LSL #16
1901 SUB r3, r3, r10
1902 LSR r11, r11, #16
1903 BFI r3, r11, #16, #16
1904#endif /* !WOLFSSL_ARM_ARCH_7M */
1905#ifndef WOLFSSL_ARM_ARCH_7M
1906 SMULWB r10, lr, r4
1907 SMULWT r11, lr, r4
1908 SMULBT r10, r12, r10
1909 SMULBT r11, r12, r11
1910 PKHBT r10, r10, r11, LSL #16
1911 SSUB16 r4, r4, r10
1912#else
1913 SBFX r10, r4, #0, #16
1914 SBFX r11, r4, #16, #16
1915 MUL r10, lr, r10
1916 MUL r11, lr, r11
1917 ASR r10, r10, #26
1918 ASR r11, r11, #26
1919 MUL r10, r12, r10
1920 MUL r11, r12, r11
1921 SUB r11, r4, r11, LSL #16
1922 SUB r4, r4, r10
1923 LSR r11, r11, #16
1924 BFI r4, r11, #16, #16
1925#endif /* !WOLFSSL_ARM_ARCH_7M */
1926#ifndef WOLFSSL_ARM_ARCH_7M
1927 SMULWB r10, lr, r5
1928 SMULWT r11, lr, r5
1929 SMULBT r10, r12, r10
1930 SMULBT r11, r12, r11
1931 PKHBT r10, r10, r11, LSL #16
1932 SSUB16 r5, r5, r10
1933#else
1934 SBFX r10, r5, #0, #16
1935 SBFX r11, r5, #16, #16
1936 MUL r10, lr, r10
1937 MUL r11, lr, r11
1938 ASR r10, r10, #26
1939 ASR r11, r11, #26
1940 MUL r10, r12, r10
1941 MUL r11, r12, r11
1942 SUB r11, r5, r11, LSL #16
1943 SUB r5, r5, r10
1944 LSR r11, r11, #16
1945 BFI r5, r11, #16, #16
1946#endif /* !WOLFSSL_ARM_ARCH_7M */
1947 STR r2, [r0]
1948 STR r3, [r0, #4]
1949 STR r4, [r0, #8]
1950 STR r5, [r0, #12]
1951 STR r6, [r0, #16]
1952 STR r7, [r0, #20]
1953 STR r8, [r0, #24]
1954 STR r9, [r0, #28]
1955 LDR r3, [sp, #4]
1956 ADD r3, r3, #0x10
1957 RSBS r10, r3, #0x100
1958 ADD r0, r0, #0x20
1959#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
1960 BNE L_mlkem_invntt_loop_765
1961#else
1962 BNE.N L_mlkem_invntt_loop_765
1963#endif
1964 SUB r0, r0, #0x200
1965 MOV r3, #0x0
1966L_mlkem_invntt_loop_4_j:
1967 STR r3, [sp, #4]
1968 ADD lr, r1, r3, LSR #4
1969 MOV r2, #0x4
1970 LDR lr, [lr, #224]
1971L_mlkem_invntt_loop_4_i:
1972 STR r2, [sp]
1973 LDR r2, [r0]
1974 LDR r3, [r0, #16]
1975 LDR r4, [r0, #32]
1976 LDR r5, [r0, #48]
1977 LDR r6, [r0, #64]
1978 LDR r7, [r0, #80]
1979 LDR r8, [r0, #96]
1980 LDR r9, [r0, #112]
1981#ifndef WOLFSSL_ARM_ARCH_7M
1982 SSUB16 r10, r2, r4
1983 SADD16 r2, r2, r4
1984 SMULBT r4, lr, r10
1985 SMULBB r10, lr, r10
1986 SMULTB r11, r12, r10
1987 SMLABB r10, r12, r11, r10
1988 SMULTB r11, r12, r4
1989 SMLABB r4, r12, r11, r4
1990 PKHTB r4, r4, r10, ASR #16
1991#else
1992 SUB r11, r2, r4
1993 ADD r12, r2, r4
1994 BFC r4, #0, #16
1995 BFC r2, #0, #16
1996 SUB r10, r2, r4
1997 ADD r2, r2, r4
1998 BFI r10, r11, #0, #16
1999 BFI r2, r12, #0, #16
2000 SBFX r11, lr, #0, #16
2001 ASR r12, r10, #16
2002 MUL r4, r11, r12
2003 SBFX r10, r10, #0, #16
2004 MUL r10, r11, r10
2005 MOV r12, #0xcff
2006 SBFX r11, r10, #0, #16
2007 MUL r11, r12, r11
2008 MOV r12, #0xd01
2009 SBFX r11, r11, #0, #16
2010 MLA r10, r12, r11, r10
2011 MOV r12, #0xcff
2012 SBFX r11, r4, #0, #16
2013 MUL r11, r12, r11
2014 MOV r12, #0xd01
2015 SBFX r11, r11, #0, #16
2016 LSR r10, r10, #16
2017 MLA r4, r12, r11, r4
2018 BFI r4, r10, #0, #16
2019#endif /* !WOLFSSL_ARM_ARCH_7M */
2020#ifndef WOLFSSL_ARM_ARCH_7M
2021 SSUB16 r10, r3, r5
2022 SADD16 r3, r3, r5
2023 SMULBT r5, lr, r10
2024 SMULBB r10, lr, r10
2025 SMULTB r11, r12, r10
2026 SMLABB r10, r12, r11, r10
2027 SMULTB r11, r12, r5
2028 SMLABB r5, r12, r11, r5
2029 PKHTB r5, r5, r10, ASR #16
2030#else
2031 SUB r11, r3, r5
2032 ADD r12, r3, r5
2033 BFC r5, #0, #16
2034 BFC r3, #0, #16
2035 SUB r10, r3, r5
2036 ADD r3, r3, r5
2037 BFI r10, r11, #0, #16
2038 BFI r3, r12, #0, #16
2039 SBFX r11, lr, #0, #16
2040 ASR r12, r10, #16
2041 MUL r5, r11, r12
2042 SBFX r10, r10, #0, #16
2043 MUL r10, r11, r10
2044 MOV r12, #0xcff
2045 SBFX r11, r10, #0, #16
2046 MUL r11, r12, r11
2047 MOV r12, #0xd01
2048 SBFX r11, r11, #0, #16
2049 MLA r10, r12, r11, r10
2050 MOV r12, #0xcff
2051 SBFX r11, r5, #0, #16
2052 MUL r11, r12, r11
2053 MOV r12, #0xd01
2054 SBFX r11, r11, #0, #16
2055 LSR r10, r10, #16
2056 MLA r5, r12, r11, r5
2057 BFI r5, r10, #0, #16
2058#endif /* !WOLFSSL_ARM_ARCH_7M */
2059#ifndef WOLFSSL_ARM_ARCH_7M
2060 SSUB16 r10, r6, r8
2061 SADD16 r6, r6, r8
2062 SMULTT r8, lr, r10
2063 SMULTB r10, lr, r10
2064 SMULTB r11, r12, r10
2065 SMLABB r10, r12, r11, r10
2066 SMULTB r11, r12, r8
2067 SMLABB r8, r12, r11, r8
2068 PKHTB r8, r8, r10, ASR #16
2069#else
2070 SUB r11, r6, r8
2071 ADD r12, r6, r8
2072 BFC r8, #0, #16
2073 BFC r6, #0, #16
2074 SUB r10, r6, r8
2075 ADD r6, r6, r8
2076 BFI r10, r11, #0, #16
2077 BFI r6, r12, #0, #16
2078 SBFX r11, lr, #16, #16
2079 ASR r12, r10, #16
2080 MUL r8, r11, r12
2081 SBFX r10, r10, #0, #16
2082 MUL r10, r11, r10
2083 MOV r12, #0xcff
2084 SBFX r11, r10, #0, #16
2085 MUL r11, r12, r11
2086 MOV r12, #0xd01
2087 SBFX r11, r11, #0, #16
2088 MLA r10, r12, r11, r10
2089 MOV r12, #0xcff
2090 SBFX r11, r8, #0, #16
2091 MUL r11, r12, r11
2092 MOV r12, #0xd01
2093 SBFX r11, r11, #0, #16
2094 LSR r10, r10, #16
2095 MLA r8, r12, r11, r8
2096 BFI r8, r10, #0, #16
2097#endif /* !WOLFSSL_ARM_ARCH_7M */
2098#ifndef WOLFSSL_ARM_ARCH_7M
2099 SSUB16 r10, r7, r9
2100 SADD16 r7, r7, r9
2101 SMULTT r9, lr, r10
2102 SMULTB r10, lr, r10
2103 SMULTB r11, r12, r10
2104 SMLABB r10, r12, r11, r10
2105 SMULTB r11, r12, r9
2106 SMLABB r9, r12, r11, r9
2107 PKHTB r9, r9, r10, ASR #16
2108#else
2109 SUB r11, r7, r9
2110 ADD r12, r7, r9
2111 BFC r9, #0, #16
2112 BFC r7, #0, #16
2113 SUB r10, r7, r9
2114 ADD r7, r7, r9
2115 BFI r10, r11, #0, #16
2116 BFI r7, r12, #0, #16
2117 SBFX r11, lr, #16, #16
2118 ASR r12, r10, #16
2119 MUL r9, r11, r12
2120 SBFX r10, r10, #0, #16
2121 MUL r10, r11, r10
2122 MOV r12, #0xcff
2123 SBFX r11, r10, #0, #16
2124 MUL r11, r12, r11
2125 MOV r12, #0xd01
2126 SBFX r11, r11, #0, #16
2127 MLA r10, r12, r11, r10
2128 MOV r12, #0xcff
2129 SBFX r11, r9, #0, #16
2130 MUL r11, r12, r11
2131 MOV r12, #0xd01
2132 SBFX r11, r11, #0, #16
2133 LSR r10, r10, #16
2134 MLA r9, r12, r11, r9
2135 BFI r9, r10, #0, #16
2136#endif /* !WOLFSSL_ARM_ARCH_7M */
2137 STR r2, [r0]
2138 STR r3, [r0, #16]
2139 STR r4, [r0, #32]
2140 STR r5, [r0, #48]
2141 STR r6, [r0, #64]
2142 STR r7, [r0, #80]
2143 STR r8, [r0, #96]
2144 STR r9, [r0, #112]
2145 LDRD r2, r3, [sp]
2146 SUBS r2, r2, #0x1
2147 ADD r0, r0, #0x4
2148#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
2149 BNE L_mlkem_invntt_loop_4_i
2150#else
2151 BNE.N L_mlkem_invntt_loop_4_i
2152#endif
2153 ADD r3, r3, #0x40
2154 RSBS r10, r3, #0x100
2155 ADD r0, r0, #0x70
2156#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
2157 BNE L_mlkem_invntt_loop_4_j
2158#else
2159 BNE.N L_mlkem_invntt_loop_4_j
2160#endif
2161 SUB r0, r0, #0x200
2162 MOV r2, #0x10
2163L_mlkem_invntt_loop_321:
2164 STR r2, [sp]
2165 LDRH lr, [r1, #2]
2166 LDR r2, [r0]
2167 LDR r3, [r0, #64]
2168 LDR r4, [r0, #128]
2169 LDR r5, [r0, #192]
2170 LDR r6, [r0, #256]
2171 LDR r7, [r0, #320]
2172 LDR r8, [r0, #384]
2173 LDR r9, [r0, #448]
2174 LDR lr, [r1, #240]
2175#ifndef WOLFSSL_ARM_ARCH_7M
2176 SSUB16 r10, r2, r3
2177 SADD16 r2, r2, r3
2178 SMULBT r3, lr, r10
2179 SMULBB r10, lr, r10
2180 SMULTB r11, r12, r10
2181 SMLABB r10, r12, r11, r10
2182 SMULTB r11, r12, r3
2183 SMLABB r3, r12, r11, r3
2184 PKHTB r3, r3, r10, ASR #16
2185#else
2186 SUB r11, r2, r3
2187 ADD r12, r2, r3
2188 BFC r3, #0, #16
2189 BFC r2, #0, #16
2190 SUB r10, r2, r3
2191 ADD r2, r2, r3
2192 BFI r10, r11, #0, #16
2193 BFI r2, r12, #0, #16
2194 SBFX r11, lr, #0, #16
2195 ASR r12, r10, #16
2196 MUL r3, r11, r12
2197 SBFX r10, r10, #0, #16
2198 MUL r10, r11, r10
2199 MOV r12, #0xcff
2200 SBFX r11, r10, #0, #16
2201 MUL r11, r12, r11
2202 MOV r12, #0xd01
2203 SBFX r11, r11, #0, #16
2204 MLA r10, r12, r11, r10
2205 MOV r12, #0xcff
2206 SBFX r11, r3, #0, #16
2207 MUL r11, r12, r11
2208 MOV r12, #0xd01
2209 SBFX r11, r11, #0, #16
2210 LSR r10, r10, #16
2211 MLA r3, r12, r11, r3
2212 BFI r3, r10, #0, #16
2213#endif /* !WOLFSSL_ARM_ARCH_7M */
2214#ifndef WOLFSSL_ARM_ARCH_7M
2215 SSUB16 r10, r4, r5
2216 SADD16 r4, r4, r5
2217 SMULTT r5, lr, r10
2218 SMULTB r10, lr, r10
2219 SMULTB r11, r12, r10
2220 SMLABB r10, r12, r11, r10
2221 SMULTB r11, r12, r5
2222 SMLABB r5, r12, r11, r5
2223 PKHTB r5, r5, r10, ASR #16
2224#else
2225 SUB r11, r4, r5
2226 ADD r12, r4, r5
2227 BFC r5, #0, #16
2228 BFC r4, #0, #16
2229 SUB r10, r4, r5
2230 ADD r4, r4, r5
2231 BFI r10, r11, #0, #16
2232 BFI r4, r12, #0, #16
2233 SBFX r11, lr, #16, #16
2234 ASR r12, r10, #16
2235 MUL r5, r11, r12
2236 SBFX r10, r10, #0, #16
2237 MUL r10, r11, r10
2238 MOV r12, #0xcff
2239 SBFX r11, r10, #0, #16
2240 MUL r11, r12, r11
2241 MOV r12, #0xd01
2242 SBFX r11, r11, #0, #16
2243 MLA r10, r12, r11, r10
2244 MOV r12, #0xcff
2245 SBFX r11, r5, #0, #16
2246 MUL r11, r12, r11
2247 MOV r12, #0xd01
2248 SBFX r11, r11, #0, #16
2249 LSR r10, r10, #16
2250 MLA r5, r12, r11, r5
2251 BFI r5, r10, #0, #16
2252#endif /* !WOLFSSL_ARM_ARCH_7M */
2253 LDR lr, [r1, #244]
2254#ifndef WOLFSSL_ARM_ARCH_7M
2255 SSUB16 r10, r6, r7
2256 SADD16 r6, r6, r7
2257 SMULBT r7, lr, r10
2258 SMULBB r10, lr, r10
2259 SMULTB r11, r12, r10
2260 SMLABB r10, r12, r11, r10
2261 SMULTB r11, r12, r7
2262 SMLABB r7, r12, r11, r7
2263 PKHTB r7, r7, r10, ASR #16
2264#else
2265 SUB r11, r6, r7
2266 ADD r12, r6, r7
2267 BFC r7, #0, #16
2268 BFC r6, #0, #16
2269 SUB r10, r6, r7
2270 ADD r6, r6, r7
2271 BFI r10, r11, #0, #16
2272 BFI r6, r12, #0, #16
2273 SBFX r11, lr, #0, #16
2274 ASR r12, r10, #16
2275 MUL r7, r11, r12
2276 SBFX r10, r10, #0, #16
2277 MUL r10, r11, r10
2278 MOV r12, #0xcff
2279 SBFX r11, r10, #0, #16
2280 MUL r11, r12, r11
2281 MOV r12, #0xd01
2282 SBFX r11, r11, #0, #16
2283 MLA r10, r12, r11, r10
2284 MOV r12, #0xcff
2285 SBFX r11, r7, #0, #16
2286 MUL r11, r12, r11
2287 MOV r12, #0xd01
2288 SBFX r11, r11, #0, #16
2289 LSR r10, r10, #16
2290 MLA r7, r12, r11, r7
2291 BFI r7, r10, #0, #16
2292#endif /* !WOLFSSL_ARM_ARCH_7M */
2293#ifndef WOLFSSL_ARM_ARCH_7M
2294 SSUB16 r10, r8, r9
2295 SADD16 r8, r8, r9
2296 SMULTT r9, lr, r10
2297 SMULTB r10, lr, r10
2298 SMULTB r11, r12, r10
2299 SMLABB r10, r12, r11, r10
2300 SMULTB r11, r12, r9
2301 SMLABB r9, r12, r11, r9
2302 PKHTB r9, r9, r10, ASR #16
2303#else
2304 SUB r11, r8, r9
2305 ADD r12, r8, r9
2306 BFC r9, #0, #16
2307 BFC r8, #0, #16
2308 SUB r10, r8, r9
2309 ADD r8, r8, r9
2310 BFI r10, r11, #0, #16
2311 BFI r8, r12, #0, #16
2312 SBFX r11, lr, #16, #16
2313 ASR r12, r10, #16
2314 MUL r9, r11, r12
2315 SBFX r10, r10, #0, #16
2316 MUL r10, r11, r10
2317 MOV r12, #0xcff
2318 SBFX r11, r10, #0, #16
2319 MUL r11, r12, r11
2320 MOV r12, #0xd01
2321 SBFX r11, r11, #0, #16
2322 MLA r10, r12, r11, r10
2323 MOV r12, #0xcff
2324 SBFX r11, r9, #0, #16
2325 MUL r11, r12, r11
2326 MOV r12, #0xd01
2327 SBFX r11, r11, #0, #16
2328 LSR r10, r10, #16
2329 MLA r9, r12, r11, r9
2330 BFI r9, r10, #0, #16
2331#endif /* !WOLFSSL_ARM_ARCH_7M */
2332 LDR lr, [r1, #248]
2333#ifndef WOLFSSL_ARM_ARCH_7M
2334 SSUB16 r10, r2, r4
2335 SADD16 r2, r2, r4
2336 SMULBT r4, lr, r10
2337 SMULBB r10, lr, r10
2338 SMULTB r11, r12, r10
2339 SMLABB r10, r12, r11, r10
2340 SMULTB r11, r12, r4
2341 SMLABB r4, r12, r11, r4
2342 PKHTB r4, r4, r10, ASR #16
2343#else
2344 SUB r11, r2, r4
2345 ADD r12, r2, r4
2346 BFC r4, #0, #16
2347 BFC r2, #0, #16
2348 SUB r10, r2, r4
2349 ADD r2, r2, r4
2350 BFI r10, r11, #0, #16
2351 BFI r2, r12, #0, #16
2352 SBFX r11, lr, #0, #16
2353 ASR r12, r10, #16
2354 MUL r4, r11, r12
2355 SBFX r10, r10, #0, #16
2356 MUL r10, r11, r10
2357 MOV r12, #0xcff
2358 SBFX r11, r10, #0, #16
2359 MUL r11, r12, r11
2360 MOV r12, #0xd01
2361 SBFX r11, r11, #0, #16
2362 MLA r10, r12, r11, r10
2363 MOV r12, #0xcff
2364 SBFX r11, r4, #0, #16
2365 MUL r11, r12, r11
2366 MOV r12, #0xd01
2367 SBFX r11, r11, #0, #16
2368 LSR r10, r10, #16
2369 MLA r4, r12, r11, r4
2370 BFI r4, r10, #0, #16
2371#endif /* !WOLFSSL_ARM_ARCH_7M */
2372#ifndef WOLFSSL_ARM_ARCH_7M
2373 SSUB16 r10, r3, r5
2374 SADD16 r3, r3, r5
2375 SMULBT r5, lr, r10
2376 SMULBB r10, lr, r10
2377 SMULTB r11, r12, r10
2378 SMLABB r10, r12, r11, r10
2379 SMULTB r11, r12, r5
2380 SMLABB r5, r12, r11, r5
2381 PKHTB r5, r5, r10, ASR #16
2382#else
2383 SUB r11, r3, r5
2384 ADD r12, r3, r5
2385 BFC r5, #0, #16
2386 BFC r3, #0, #16
2387 SUB r10, r3, r5
2388 ADD r3, r3, r5
2389 BFI r10, r11, #0, #16
2390 BFI r3, r12, #0, #16
2391 SBFX r11, lr, #0, #16
2392 ASR r12, r10, #16
2393 MUL r5, r11, r12
2394 SBFX r10, r10, #0, #16
2395 MUL r10, r11, r10
2396 MOV r12, #0xcff
2397 SBFX r11, r10, #0, #16
2398 MUL r11, r12, r11
2399 MOV r12, #0xd01
2400 SBFX r11, r11, #0, #16
2401 MLA r10, r12, r11, r10
2402 MOV r12, #0xcff
2403 SBFX r11, r5, #0, #16
2404 MUL r11, r12, r11
2405 MOV r12, #0xd01
2406 SBFX r11, r11, #0, #16
2407 LSR r10, r10, #16
2408 MLA r5, r12, r11, r5
2409 BFI r5, r10, #0, #16
2410#endif /* !WOLFSSL_ARM_ARCH_7M */
2411#ifndef WOLFSSL_ARM_ARCH_7M
2412 SSUB16 r10, r6, r8
2413 SADD16 r6, r6, r8
2414 SMULTT r8, lr, r10
2415 SMULTB r10, lr, r10
2416 SMULTB r11, r12, r10
2417 SMLABB r10, r12, r11, r10
2418 SMULTB r11, r12, r8
2419 SMLABB r8, r12, r11, r8
2420 PKHTB r8, r8, r10, ASR #16
2421#else
2422 SUB r11, r6, r8
2423 ADD r12, r6, r8
2424 BFC r8, #0, #16
2425 BFC r6, #0, #16
2426 SUB r10, r6, r8
2427 ADD r6, r6, r8
2428 BFI r10, r11, #0, #16
2429 BFI r6, r12, #0, #16
2430 SBFX r11, lr, #16, #16
2431 ASR r12, r10, #16
2432 MUL r8, r11, r12
2433 SBFX r10, r10, #0, #16
2434 MUL r10, r11, r10
2435 MOV r12, #0xcff
2436 SBFX r11, r10, #0, #16
2437 MUL r11, r12, r11
2438 MOV r12, #0xd01
2439 SBFX r11, r11, #0, #16
2440 MLA r10, r12, r11, r10
2441 MOV r12, #0xcff
2442 SBFX r11, r8, #0, #16
2443 MUL r11, r12, r11
2444 MOV r12, #0xd01
2445 SBFX r11, r11, #0, #16
2446 LSR r10, r10, #16
2447 MLA r8, r12, r11, r8
2448 BFI r8, r10, #0, #16
2449#endif /* !WOLFSSL_ARM_ARCH_7M */
2450#ifndef WOLFSSL_ARM_ARCH_7M
2451 SSUB16 r10, r7, r9
2452 SADD16 r7, r7, r9
2453 SMULTT r9, lr, r10
2454 SMULTB r10, lr, r10
2455 SMULTB r11, r12, r10
2456 SMLABB r10, r12, r11, r10
2457 SMULTB r11, r12, r9
2458 SMLABB r9, r12, r11, r9
2459 PKHTB r9, r9, r10, ASR #16
2460#else
2461 SUB r11, r7, r9
2462 ADD r12, r7, r9
2463 BFC r9, #0, #16
2464 BFC r7, #0, #16
2465 SUB r10, r7, r9
2466 ADD r7, r7, r9
2467 BFI r10, r11, #0, #16
2468 BFI r7, r12, #0, #16
2469 SBFX r11, lr, #16, #16
2470 ASR r12, r10, #16
2471 MUL r9, r11, r12
2472 SBFX r10, r10, #0, #16
2473 MUL r10, r11, r10
2474 MOV r12, #0xcff
2475 SBFX r11, r10, #0, #16
2476 MUL r11, r12, r11
2477 MOV r12, #0xd01
2478 SBFX r11, r11, #0, #16
2479 MLA r10, r12, r11, r10
2480 MOV r12, #0xcff
2481 SBFX r11, r9, #0, #16
2482 MUL r11, r12, r11
2483 MOV r12, #0xd01
2484 SBFX r11, r11, #0, #16
2485 LSR r10, r10, #16
2486 MLA r9, r12, r11, r9
2487 BFI r9, r10, #0, #16
2488#endif /* !WOLFSSL_ARM_ARCH_7M */
2489#ifndef WOLFSSL_ARM_ARCH_7M
2490 MOV lr, #0xafc0
2491 MOVT lr, #0x13
2492#else
2493 MOV lr, #0x4ebf
2494#endif /* !WOLFSSL_ARM_ARCH_7M */
2495#ifndef WOLFSSL_ARM_ARCH_7M
2496 SMULWB r10, lr, r2
2497 SMULWT r11, lr, r2
2498 SMULBT r10, r12, r10
2499 SMULBT r11, r12, r11
2500 PKHBT r10, r10, r11, LSL #16
2501 SSUB16 r2, r2, r10
2502#else
2503 SBFX r10, r2, #0, #16
2504 SBFX r11, r2, #16, #16
2505 MUL r10, lr, r10
2506 MUL r11, lr, r11
2507 ASR r10, r10, #26
2508 ASR r11, r11, #26
2509 MUL r10, r12, r10
2510 MUL r11, r12, r11
2511 SUB r11, r2, r11, LSL #16
2512 SUB r2, r2, r10
2513 LSR r11, r11, #16
2514 BFI r2, r11, #16, #16
2515#endif /* !WOLFSSL_ARM_ARCH_7M */
2516#ifndef WOLFSSL_ARM_ARCH_7M
2517 SMULWB r10, lr, r3
2518 SMULWT r11, lr, r3
2519 SMULBT r10, r12, r10
2520 SMULBT r11, r12, r11
2521 PKHBT r10, r10, r11, LSL #16
2522 SSUB16 r3, r3, r10
2523#else
2524 SBFX r10, r3, #0, #16
2525 SBFX r11, r3, #16, #16
2526 MUL r10, lr, r10
2527 MUL r11, lr, r11
2528 ASR r10, r10, #26
2529 ASR r11, r11, #26
2530 MUL r10, r12, r10
2531 MUL r11, r12, r11
2532 SUB r11, r3, r11, LSL #16
2533 SUB r3, r3, r10
2534 LSR r11, r11, #16
2535 BFI r3, r11, #16, #16
2536#endif /* !WOLFSSL_ARM_ARCH_7M */
2537#ifndef WOLFSSL_ARM_ARCH_7M
2538 SMULWB r10, lr, r4
2539 SMULWT r11, lr, r4
2540 SMULBT r10, r12, r10
2541 SMULBT r11, r12, r11
2542 PKHBT r10, r10, r11, LSL #16
2543 SSUB16 r4, r4, r10
2544#else
2545 SBFX r10, r4, #0, #16
2546 SBFX r11, r4, #16, #16
2547 MUL r10, lr, r10
2548 MUL r11, lr, r11
2549 ASR r10, r10, #26
2550 ASR r11, r11, #26
2551 MUL r10, r12, r10
2552 MUL r11, r12, r11
2553 SUB r11, r4, r11, LSL #16
2554 SUB r4, r4, r10
2555 LSR r11, r11, #16
2556 BFI r4, r11, #16, #16
2557#endif /* !WOLFSSL_ARM_ARCH_7M */
2558#ifndef WOLFSSL_ARM_ARCH_7M
2559 SMULWB r10, lr, r5
2560 SMULWT r11, lr, r5
2561 SMULBT r10, r12, r10
2562 SMULBT r11, r12, r11
2563 PKHBT r10, r10, r11, LSL #16
2564 SSUB16 r5, r5, r10
2565#else
2566 SBFX r10, r5, #0, #16
2567 SBFX r11, r5, #16, #16
2568 MUL r10, lr, r10
2569 MUL r11, lr, r11
2570 ASR r10, r10, #26
2571 ASR r11, r11, #26
2572 MUL r10, r12, r10
2573 MUL r11, r12, r11
2574 SUB r11, r5, r11, LSL #16
2575 SUB r5, r5, r10
2576 LSR r11, r11, #16
2577 BFI r5, r11, #16, #16
2578#endif /* !WOLFSSL_ARM_ARCH_7M */
2579 LDR lr, [r1, #252]
2580#ifndef WOLFSSL_ARM_ARCH_7M
2581 SSUB16 r10, r2, r6
2582 SADD16 r2, r2, r6
2583 SMULBT r6, lr, r10
2584 SMULBB r10, lr, r10
2585 SMULTB r11, r12, r10
2586 SMLABB r10, r12, r11, r10
2587 SMULTB r11, r12, r6
2588 SMLABB r6, r12, r11, r6
2589 PKHTB r6, r6, r10, ASR #16
2590#else
2591 SUB r11, r2, r6
2592 ADD r12, r2, r6
2593 BFC r6, #0, #16
2594 BFC r2, #0, #16
2595 SUB r10, r2, r6
2596 ADD r2, r2, r6
2597 BFI r10, r11, #0, #16
2598 BFI r2, r12, #0, #16
2599 SBFX r11, lr, #0, #16
2600 ASR r12, r10, #16
2601 MUL r6, r11, r12
2602 SBFX r10, r10, #0, #16
2603 MUL r10, r11, r10
2604 MOV r12, #0xcff
2605 SBFX r11, r10, #0, #16
2606 MUL r11, r12, r11
2607 MOV r12, #0xd01
2608 SBFX r11, r11, #0, #16
2609 MLA r10, r12, r11, r10
2610 MOV r12, #0xcff
2611 SBFX r11, r6, #0, #16
2612 MUL r11, r12, r11
2613 MOV r12, #0xd01
2614 SBFX r11, r11, #0, #16
2615 LSR r10, r10, #16
2616 MLA r6, r12, r11, r6
2617 BFI r6, r10, #0, #16
2618#endif /* !WOLFSSL_ARM_ARCH_7M */
2619#ifndef WOLFSSL_ARM_ARCH_7M
2620 SSUB16 r10, r3, r7
2621 SADD16 r3, r3, r7
2622 SMULBT r7, lr, r10
2623 SMULBB r10, lr, r10
2624 SMULTB r11, r12, r10
2625 SMLABB r10, r12, r11, r10
2626 SMULTB r11, r12, r7
2627 SMLABB r7, r12, r11, r7
2628 PKHTB r7, r7, r10, ASR #16
2629#else
2630 SUB r11, r3, r7
2631 ADD r12, r3, r7
2632 BFC r7, #0, #16
2633 BFC r3, #0, #16
2634 SUB r10, r3, r7
2635 ADD r3, r3, r7
2636 BFI r10, r11, #0, #16
2637 BFI r3, r12, #0, #16
2638 SBFX r11, lr, #0, #16
2639 ASR r12, r10, #16
2640 MUL r7, r11, r12
2641 SBFX r10, r10, #0, #16
2642 MUL r10, r11, r10
2643 MOV r12, #0xcff
2644 SBFX r11, r10, #0, #16
2645 MUL r11, r12, r11
2646 MOV r12, #0xd01
2647 SBFX r11, r11, #0, #16
2648 MLA r10, r12, r11, r10
2649 MOV r12, #0xcff
2650 SBFX r11, r7, #0, #16
2651 MUL r11, r12, r11
2652 MOV r12, #0xd01
2653 SBFX r11, r11, #0, #16
2654 LSR r10, r10, #16
2655 MLA r7, r12, r11, r7
2656 BFI r7, r10, #0, #16
2657#endif /* !WOLFSSL_ARM_ARCH_7M */
2658#ifndef WOLFSSL_ARM_ARCH_7M
2659 SSUB16 r10, r4, r8
2660 SADD16 r4, r4, r8
2661 SMULBT r8, lr, r10
2662 SMULBB r10, lr, r10
2663 SMULTB r11, r12, r10
2664 SMLABB r10, r12, r11, r10
2665 SMULTB r11, r12, r8
2666 SMLABB r8, r12, r11, r8
2667 PKHTB r8, r8, r10, ASR #16
2668#else
2669 SUB r11, r4, r8
2670 ADD r12, r4, r8
2671 BFC r8, #0, #16
2672 BFC r4, #0, #16
2673 SUB r10, r4, r8
2674 ADD r4, r4, r8
2675 BFI r10, r11, #0, #16
2676 BFI r4, r12, #0, #16
2677 SBFX r11, lr, #0, #16
2678 ASR r12, r10, #16
2679 MUL r8, r11, r12
2680 SBFX r10, r10, #0, #16
2681 MUL r10, r11, r10
2682 MOV r12, #0xcff
2683 SBFX r11, r10, #0, #16
2684 MUL r11, r12, r11
2685 MOV r12, #0xd01
2686 SBFX r11, r11, #0, #16
2687 MLA r10, r12, r11, r10
2688 MOV r12, #0xcff
2689 SBFX r11, r8, #0, #16
2690 MUL r11, r12, r11
2691 MOV r12, #0xd01
2692 SBFX r11, r11, #0, #16
2693 LSR r10, r10, #16
2694 MLA r8, r12, r11, r8
2695 BFI r8, r10, #0, #16
2696#endif /* !WOLFSSL_ARM_ARCH_7M */
2697#ifndef WOLFSSL_ARM_ARCH_7M
2698 SSUB16 r10, r5, r9
2699 SADD16 r5, r5, r9
2700 SMULBT r9, lr, r10
2701 SMULBB r10, lr, r10
2702 SMULTB r11, r12, r10
2703 SMLABB r10, r12, r11, r10
2704 SMULTB r11, r12, r9
2705 SMLABB r9, r12, r11, r9
2706 PKHTB r9, r9, r10, ASR #16
2707#else
2708 SUB r11, r5, r9
2709 ADD r12, r5, r9
2710 BFC r9, #0, #16
2711 BFC r5, #0, #16
2712 SUB r10, r5, r9
2713 ADD r5, r5, r9
2714 BFI r10, r11, #0, #16
2715 BFI r5, r12, #0, #16
2716 SBFX r11, lr, #0, #16
2717 ASR r12, r10, #16
2718 MUL r9, r11, r12
2719 SBFX r10, r10, #0, #16
2720 MUL r10, r11, r10
2721 MOV r12, #0xcff
2722 SBFX r11, r10, #0, #16
2723 MUL r11, r12, r11
2724 MOV r12, #0xd01
2725 SBFX r11, r11, #0, #16
2726 MLA r10, r12, r11, r10
2727 MOV r12, #0xcff
2728 SBFX r11, r9, #0, #16
2729 MUL r11, r12, r11
2730 MOV r12, #0xd01
2731 SBFX r11, r11, #0, #16
2732 LSR r10, r10, #16
2733 MLA r9, r12, r11, r9
2734 BFI r9, r10, #0, #16
2735#endif /* !WOLFSSL_ARM_ARCH_7M */
2736 LDR lr, [r1, #254]
2737#ifndef WOLFSSL_ARM_ARCH_7M
2738 SMULBB r10, lr, r2
2739 SMULBT r2, lr, r2
2740 SMULTB r11, r12, r10
2741 SMLABB r10, r12, r11, r10
2742 SMULTB r11, r12, r2
2743 SMLABB r2, r12, r11, r2
2744 PKHTB r2, r2, r10, ASR #16
2745#else
2746 SBFX r11, lr, #0, #16
2747 SBFX r10, r2, #0, #16
2748 MUL r10, r11, r10
2749 SBFX r2, r2, #16, #16
2750 MUL r2, r11, r2
2751 MOV r12, #0xcff
2752 MUL r11, r12, r10
2753 MOV r12, #0xd01
2754 SBFX r11, r11, #0, #16
2755 MLA r10, r12, r11, r10
2756 MOV r12, #0xcff
2757 SBFX r11, r2, #0, #16
2758 MUL r11, r12, r11
2759 MOV r12, #0xd01
2760 SBFX r11, r11, #0, #16
2761 LSR r10, r10, #16
2762 MLA r2, r12, r11, r2
2763 BFI r2, r10, #0, #16
2764#endif /* !WOLFSSL_ARM_ARCH_7M */
2765#ifndef WOLFSSL_ARM_ARCH_7M
2766 SMULBB r10, lr, r3
2767 SMULBT r3, lr, r3
2768 SMULTB r11, r12, r10
2769 SMLABB r10, r12, r11, r10
2770 SMULTB r11, r12, r3
2771 SMLABB r3, r12, r11, r3
2772 PKHTB r3, r3, r10, ASR #16
2773#else
2774 SBFX r11, lr, #0, #16
2775 SBFX r10, r3, #0, #16
2776 MUL r10, r11, r10
2777 SBFX r3, r3, #16, #16
2778 MUL r3, r11, r3
2779 MOV r12, #0xcff
2780 MUL r11, r12, r10
2781 MOV r12, #0xd01
2782 SBFX r11, r11, #0, #16
2783 MLA r10, r12, r11, r10
2784 MOV r12, #0xcff
2785 SBFX r11, r3, #0, #16
2786 MUL r11, r12, r11
2787 MOV r12, #0xd01
2788 SBFX r11, r11, #0, #16
2789 LSR r10, r10, #16
2790 MLA r3, r12, r11, r3
2791 BFI r3, r10, #0, #16
2792#endif /* !WOLFSSL_ARM_ARCH_7M */
2793#ifndef WOLFSSL_ARM_ARCH_7M
2794 SMULBB r10, lr, r4
2795 SMULBT r4, lr, r4
2796 SMULTB r11, r12, r10
2797 SMLABB r10, r12, r11, r10
2798 SMULTB r11, r12, r4
2799 SMLABB r4, r12, r11, r4
2800 PKHTB r4, r4, r10, ASR #16
2801#else
2802 SBFX r11, lr, #0, #16
2803 SBFX r10, r4, #0, #16
2804 MUL r10, r11, r10
2805 SBFX r4, r4, #16, #16
2806 MUL r4, r11, r4
2807 MOV r12, #0xcff
2808 MUL r11, r12, r10
2809 MOV r12, #0xd01
2810 SBFX r11, r11, #0, #16
2811 MLA r10, r12, r11, r10
2812 MOV r12, #0xcff
2813 SBFX r11, r4, #0, #16
2814 MUL r11, r12, r11
2815 MOV r12, #0xd01
2816 SBFX r11, r11, #0, #16
2817 LSR r10, r10, #16
2818 MLA r4, r12, r11, r4
2819 BFI r4, r10, #0, #16
2820#endif /* !WOLFSSL_ARM_ARCH_7M */
2821#ifndef WOLFSSL_ARM_ARCH_7M
2822 SMULBB r10, lr, r5
2823 SMULBT r5, lr, r5
2824 SMULTB r11, r12, r10
2825 SMLABB r10, r12, r11, r10
2826 SMULTB r11, r12, r5
2827 SMLABB r5, r12, r11, r5
2828 PKHTB r5, r5, r10, ASR #16
2829#else
2830 SBFX r11, lr, #0, #16
2831 SBFX r10, r5, #0, #16
2832 MUL r10, r11, r10
2833 SBFX r5, r5, #16, #16
2834 MUL r5, r11, r5
2835 MOV r12, #0xcff
2836 MUL r11, r12, r10
2837 MOV r12, #0xd01
2838 SBFX r11, r11, #0, #16
2839 MLA r10, r12, r11, r10
2840 MOV r12, #0xcff
2841 SBFX r11, r5, #0, #16
2842 MUL r11, r12, r11
2843 MOV r12, #0xd01
2844 SBFX r11, r11, #0, #16
2845 LSR r10, r10, #16
2846 MLA r5, r12, r11, r5
2847 BFI r5, r10, #0, #16
2848#endif /* !WOLFSSL_ARM_ARCH_7M */
2849#ifndef WOLFSSL_ARM_ARCH_7M
2850 SMULBB r10, lr, r6
2851 SMULBT r6, lr, r6
2852 SMULTB r11, r12, r10
2853 SMLABB r10, r12, r11, r10
2854 SMULTB r11, r12, r6
2855 SMLABB r6, r12, r11, r6
2856 PKHTB r6, r6, r10, ASR #16
2857#else
2858 SBFX r11, lr, #0, #16
2859 SBFX r10, r6, #0, #16
2860 MUL r10, r11, r10
2861 SBFX r6, r6, #16, #16
2862 MUL r6, r11, r6
2863 MOV r12, #0xcff
2864 MUL r11, r12, r10
2865 MOV r12, #0xd01
2866 SBFX r11, r11, #0, #16
2867 MLA r10, r12, r11, r10
2868 MOV r12, #0xcff
2869 SBFX r11, r6, #0, #16
2870 MUL r11, r12, r11
2871 MOV r12, #0xd01
2872 SBFX r11, r11, #0, #16
2873 LSR r10, r10, #16
2874 MLA r6, r12, r11, r6
2875 BFI r6, r10, #0, #16
2876#endif /* !WOLFSSL_ARM_ARCH_7M */
2877#ifndef WOLFSSL_ARM_ARCH_7M
2878 SMULBB r10, lr, r7
2879 SMULBT r7, lr, r7
2880 SMULTB r11, r12, r10
2881 SMLABB r10, r12, r11, r10
2882 SMULTB r11, r12, r7
2883 SMLABB r7, r12, r11, r7
2884 PKHTB r7, r7, r10, ASR #16
2885#else
2886 SBFX r11, lr, #0, #16
2887 SBFX r10, r7, #0, #16
2888 MUL r10, r11, r10
2889 SBFX r7, r7, #16, #16
2890 MUL r7, r11, r7
2891 MOV r12, #0xcff
2892 MUL r11, r12, r10
2893 MOV r12, #0xd01
2894 SBFX r11, r11, #0, #16
2895 MLA r10, r12, r11, r10
2896 MOV r12, #0xcff
2897 SBFX r11, r7, #0, #16
2898 MUL r11, r12, r11
2899 MOV r12, #0xd01
2900 SBFX r11, r11, #0, #16
2901 LSR r10, r10, #16
2902 MLA r7, r12, r11, r7
2903 BFI r7, r10, #0, #16
2904#endif /* !WOLFSSL_ARM_ARCH_7M */
2905#ifndef WOLFSSL_ARM_ARCH_7M
2906 SMULBB r10, lr, r8
2907 SMULBT r8, lr, r8
2908 SMULTB r11, r12, r10
2909 SMLABB r10, r12, r11, r10
2910 SMULTB r11, r12, r8
2911 SMLABB r8, r12, r11, r8
2912 PKHTB r8, r8, r10, ASR #16
2913#else
2914 SBFX r11, lr, #0, #16
2915 SBFX r10, r8, #0, #16
2916 MUL r10, r11, r10
2917 SBFX r8, r8, #16, #16
2918 MUL r8, r11, r8
2919 MOV r12, #0xcff
2920 MUL r11, r12, r10
2921 MOV r12, #0xd01
2922 SBFX r11, r11, #0, #16
2923 MLA r10, r12, r11, r10
2924 MOV r12, #0xcff
2925 SBFX r11, r8, #0, #16
2926 MUL r11, r12, r11
2927 MOV r12, #0xd01
2928 SBFX r11, r11, #0, #16
2929 LSR r10, r10, #16
2930 MLA r8, r12, r11, r8
2931 BFI r8, r10, #0, #16
2932#endif /* !WOLFSSL_ARM_ARCH_7M */
2933#ifndef WOLFSSL_ARM_ARCH_7M
2934 SMULBB r10, lr, r9
2935 SMULBT r9, lr, r9
2936 SMULTB r11, r12, r10
2937 SMLABB r10, r12, r11, r10
2938 SMULTB r11, r12, r9
2939 SMLABB r9, r12, r11, r9
2940 PKHTB r9, r9, r10, ASR #16
2941#else
2942 SBFX r11, lr, #0, #16
2943 SBFX r10, r9, #0, #16
2944 MUL r10, r11, r10
2945 SBFX r9, r9, #16, #16
2946 MUL r9, r11, r9
2947 MOV r12, #0xcff
2948 MUL r11, r12, r10
2949 MOV r12, #0xd01
2950 SBFX r11, r11, #0, #16
2951 MLA r10, r12, r11, r10
2952 MOV r12, #0xcff
2953 SBFX r11, r9, #0, #16
2954 MUL r11, r12, r11
2955 MOV r12, #0xd01
2956 SBFX r11, r11, #0, #16
2957 LSR r10, r10, #16
2958 MLA r9, r12, r11, r9
2959 BFI r9, r10, #0, #16
2960#endif /* !WOLFSSL_ARM_ARCH_7M */
2961 STR r2, [r0]
2962 STR r3, [r0, #64]
2963 STR r4, [r0, #128]
2964 STR r5, [r0, #192]
2965 STR r6, [r0, #256]
2966 STR r7, [r0, #320]
2967 STR r8, [r0, #384]
2968 STR r9, [r0, #448]
2969 LDR r2, [sp]
2970 SUBS r2, r2, #0x1
2971 ADD r0, r0, #0x4
2972#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
2973 BNE L_mlkem_invntt_loop_321
2974#else
2975 BNE.N L_mlkem_invntt_loop_321
2976#endif
2977 ADD sp, sp, #0x8
2978 POP {r4, r5, r6, r7, r8, r9, r10, r11, pc}
2979 /* Cycle Count = 1629 */
2980 .size mlkem_thumb2_invntt,.-mlkem_thumb2_invntt
2981#ifndef __APPLE__
2982 .text
2983 .type L_mlkem_basemul_mont_zetas, %object
2984 .size L_mlkem_basemul_mont_zetas, 256
2985#else
2986 .section __DATA,__data
2987#endif /* __APPLE__ */
2988 /* 4-byte aligned, 32-bit aligned */
2989#ifndef __APPLE__
2990 .align 2
2991#else
2992 .p2align 2
2993#endif /* __APPLE__ */
2994L_mlkem_basemul_mont_zetas:
2995 .short 0x08ed,0x0a0b,0x0b9a,0x0714,0x05d5,0x058e,0x011f,0x00ca
2996 .short 0x0c56,0x026e,0x0629,0x00b6,0x03c2,0x084f,0x073f,0x05bc
2997 .short 0x023d,0x07d4,0x0108,0x017f,0x09c4,0x05b2,0x06bf,0x0c7f
2998 .short 0x0a58,0x03f9,0x02dc,0x0260,0x06fb,0x019b,0x0c34,0x06de
2999 .short 0x04c7,0x028c,0x0ad9,0x03f7,0x07f4,0x05d3,0x0be7,0x06f9
3000 .short 0x0204,0x0cf9,0x0bc1,0x0a67,0x06af,0x0877,0x007e,0x05bd
3001 .short 0x09ac,0x0ca7,0x0bf2,0x033e,0x006b,0x0774,0x0c0a,0x094a
3002 .short 0x0b73,0x03c1,0x071d,0x0a2c,0x01c0,0x08d8,0x02a5,0x0806
3003 .short 0x08b2,0x01ae,0x022b,0x034b,0x081e,0x0367,0x060e,0x0069
3004 .short 0x01a6,0x024b,0x00b1,0x0c16,0x0bde,0x0b35,0x0626,0x0675
3005 .short 0x0c0b,0x030a,0x0487,0x0c6e,0x09f8,0x05cb,0x0aa7,0x045f
3006 .short 0x06cb,0x0284,0x0999,0x015d,0x01a2,0x0149,0x0c65,0x0cb6
3007 .short 0x0331,0x0449,0x025b,0x0262,0x052a,0x07fc,0x0748,0x0180
3008 .short 0x0842,0x0c79,0x04c2,0x07ca,0x0997,0x00dc,0x085e,0x0686
3009 .short 0x0860,0x0707,0x0803,0x031a,0x071b,0x09ab,0x099b,0x01de
3010 .short 0x0c95,0x0bcd,0x03e4,0x03df,0x03be,0x074d,0x05f2,0x065c
3011 .text
3012 .align 4
3013 .globl mlkem_thumb2_basemul_mont
3014 .type mlkem_thumb2_basemul_mont, %function
3015mlkem_thumb2_basemul_mont:
3016 PUSH {r4, r5, r6, r7, r8, r9, r10, r11, lr}
3017 ADR r3, L_mlkem_basemul_mont_zetas
3018 ADD r3, r3, #0x80
3019#ifndef WOLFSSL_ARM_ARCH_7M
3020 MOV r12, #0xd01
3021 MOVT r12, #0xcff
3022#endif /* !WOLFSSL_ARM_ARCH_7M */
3023 MOV r8, #0x0
3024L_mlkem_basemul_mont_loop:
3025 LDM r1!, {r4, r5}
3026 LDM r2!, {r6, r7}
3027 LDR lr, [r3, r8]
3028 ADD r8, r8, #0x2
3029 PUSH {r8}
3030 CMP r8, #0x80
3031#ifndef WOLFSSL_ARM_ARCH_7M
3032 SMULTT r8, r4, r6
3033 SMULTT r10, r5, r7
3034 SMULTB r9, r12, r8
3035 SMULTB r11, r12, r10
3036 SMLABB r8, r12, r9, r8
3037 SMLABB r10, r12, r11, r10
3038 RSB r11, lr, #0x0
3039 SMULBT r8, lr, r8
3040 SMULBT r10, r11, r10
3041 SMLABB r8, r4, r6, r8
3042 SMLABB r10, r5, r7, r10
3043 SMULTB r9, r12, r8
3044 SMULTB r11, r12, r10
3045 SMLABB r8, r12, r9, r8
3046 SMLABB r10, r12, r11, r10
3047 SMULBT r9, r4, r6
3048 SMULBT r11, r5, r7
3049 SMLATB r9, r4, r6, r9
3050 SMLATB r11, r5, r7, r11
3051 SMULTB r6, r12, r9
3052 SMULTB r7, r12, r11
3053 SMLABB r9, r12, r6, r9
3054 SMLABB r11, r12, r7, r11
3055 PKHTB r4, r9, r8, ASR #16
3056 PKHTB r5, r11, r10, ASR #16
3057#else
3058 ASR r8, r4, #16
3059 ASR r10, r5, #16
3060 ASR r9, r6, #16
3061 ASR r11, r7, #16
3062 MUL r8, r8, r9
3063 MUL r10, r10, r11
3064 MOV r12, #0xcff
3065 SBFX r9, r8, #0, #16
3066 SBFX r11, r10, #0, #16
3067 MUL r9, r12, r8
3068 MUL r11, r12, r11
3069 MOV r12, #0xd01
3070 SBFX r9, r9, #0, #16
3071 SBFX r11, r11, #0, #16
3072 MLA r8, r12, r9, r8
3073 MLA r10, r12, r11, r10
3074 RSB r11, lr, #0x0
3075 SBFX r9, lr, #0, #16
3076 SBFX r11, r11, #0, #16
3077 ASR r8, r8, #16
3078 ASR r10, r10, #16
3079 MUL r8, r9, r8
3080 MUL r10, r11, r10
3081 SBFX r9, r4, #0, #16
3082 SBFX r11, r5, #0, #16
3083 SBFX r12, r6, #0, #16
3084 MLA r8, r9, r12, r8
3085 SBFX r12, r7, #0, #16
3086 MLA r10, r11, r12, r10
3087 MOV r12, #0xcff
3088 SBFX r9, r8, #0, #16
3089 SBFX r11, r10, #0, #16
3090 MUL r9, r12, r9
3091 MUL r11, r12, r11
3092 MOV r12, #0xd01
3093 SBFX r9, r9, #0, #16
3094 SBFX r11, r11, #0, #16
3095 MLA r8, r12, r9, r8
3096 MLA r10, r12, r11, r10
3097 SBFX r9, r4, #0, #16
3098 SBFX r11, r5, #0, #16
3099 ASR r12, r6, #16
3100 MUL r9, r9, r12
3101 ASR r12, r7, #16
3102 MUL r11, r11, r12
3103 ASR r4, r4, #16
3104 ASR r5, r5, #16
3105 SBFX r12, r6, #0, #16
3106 MLA r9, r4, r12, r9
3107 SBFX r12, r7, #0, #16
3108 MLA r11, r5, r12, r11
3109 MOV r12, #0xcff
3110 SBFX r6, r9, #0, #16
3111 SBFX r7, r11, #0, #16
3112 MUL r6, r12, r6
3113 MUL r7, r12, r7
3114 MOV r12, #0xd01
3115 SBFX r4, r6, #0, #16
3116 SBFX r5, r7, #0, #16
3117 MLA r9, r12, r4, r9
3118 MLA r11, r12, r5, r11
3119 BFC r9, #0, #16
3120 BFC r11, #0, #16
3121 ORR r4, r9, r8, LSR #16
3122 ORR r5, r11, r10, LSR #16
3123#endif /* !WOLFSSL_ARM_ARCH_7M */
3124 STM r0!, {r4, r5}
3125 POP {r8}
3126#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3127 BNE L_mlkem_basemul_mont_loop
3128#else
3129 BNE.N L_mlkem_basemul_mont_loop
3130#endif
3131 POP {r4, r5, r6, r7, r8, r9, r10, r11, pc}
3132 /* Cycle Count = 146 */
3133 .size mlkem_thumb2_basemul_mont,.-mlkem_thumb2_basemul_mont
3134 .text
3135 .align 4
3136 .globl mlkem_thumb2_basemul_mont_add
3137 .type mlkem_thumb2_basemul_mont_add, %function
3138mlkem_thumb2_basemul_mont_add:
3139 PUSH {r4, r5, r6, r7, r8, r9, r10, r11, lr}
3140 ADR r3, L_mlkem_basemul_mont_zetas
3141 ADD r3, r3, #0x80
3142#ifndef WOLFSSL_ARM_ARCH_7M
3143 MOV r12, #0xd01
3144 MOVT r12, #0xcff
3145#endif /* !WOLFSSL_ARM_ARCH_7M */
3146 MOV r8, #0x0
3147L_mlkem_thumb2_basemul_mont_add_loop:
3148 LDM r1!, {r4, r5}
3149 LDM r2!, {r6, r7}
3150 LDR lr, [r3, r8]
3151 ADD r8, r8, #0x2
3152 PUSH {r8}
3153 CMP r8, #0x80
3154#ifndef WOLFSSL_ARM_ARCH_7M
3155 SMULTT r8, r4, r6
3156 SMULTT r10, r5, r7
3157 SMULTB r9, r12, r8
3158 SMULTB r11, r12, r10
3159 SMLABB r8, r12, r9, r8
3160 SMLABB r10, r12, r11, r10
3161 RSB r11, lr, #0x0
3162 SMULBT r8, lr, r8
3163 SMULBT r10, r11, r10
3164 SMLABB r8, r4, r6, r8
3165 SMLABB r10, r5, r7, r10
3166 SMULTB r9, r12, r8
3167 SMULTB r11, r12, r10
3168 SMLABB r8, r12, r9, r8
3169 SMLABB r10, r12, r11, r10
3170 SMULBT r9, r4, r6
3171 SMULBT r11, r5, r7
3172 SMLATB r9, r4, r6, r9
3173 SMLATB r11, r5, r7, r11
3174 SMULTB r6, r12, r9
3175 SMULTB r7, r12, r11
3176 SMLABB r9, r12, r6, r9
3177 SMLABB r11, r12, r7, r11
3178 LDM r0, {r4, r5}
3179 PKHTB r9, r9, r8, ASR #16
3180 PKHTB r11, r11, r10, ASR #16
3181 SADD16 r4, r4, r9
3182 SADD16 r5, r5, r11
3183#else
3184 ASR r8, r4, #16
3185 ASR r10, r5, #16
3186 ASR r9, r6, #16
3187 ASR r11, r7, #16
3188 MUL r8, r8, r9
3189 MUL r10, r10, r11
3190 MOV r12, #0xcff
3191 SBFX r9, r8, #0, #16
3192 SBFX r11, r10, #0, #16
3193 MUL r9, r12, r8
3194 MUL r11, r12, r11
3195 MOV r12, #0xd01
3196 SBFX r9, r9, #0, #16
3197 SBFX r11, r11, #0, #16
3198 MLA r8, r12, r9, r8
3199 MLA r10, r12, r11, r10
3200 RSB r11, lr, #0x0
3201 SBFX r9, lr, #0, #16
3202 SBFX r11, r11, #0, #16
3203 ASR r8, r8, #16
3204 ASR r10, r10, #16
3205 MUL r8, r9, r8
3206 MUL r10, r11, r10
3207 SBFX r9, r4, #0, #16
3208 SBFX r11, r5, #0, #16
3209 SBFX r12, r6, #0, #16
3210 MLA r8, r9, r12, r8
3211 SBFX r12, r7, #0, #16
3212 MLA r10, r11, r12, r10
3213 MOV r12, #0xcff
3214 SBFX r9, r8, #0, #16
3215 SBFX r11, r10, #0, #16
3216 MUL r9, r12, r9
3217 MUL r11, r12, r11
3218 MOV r12, #0xd01
3219 SBFX r9, r9, #0, #16
3220 SBFX r11, r11, #0, #16
3221 MLA r8, r12, r9, r8
3222 MLA r10, r12, r11, r10
3223 SBFX r9, r4, #0, #16
3224 SBFX r11, r5, #0, #16
3225 ASR r12, r6, #16
3226 MUL r9, r9, r12
3227 ASR r12, r7, #16
3228 MUL r11, r11, r12
3229 ASR r4, r4, #16
3230 ASR r5, r5, #16
3231 SBFX r12, r6, #0, #16
3232 MLA r9, r4, r12, r9
3233 SBFX r12, r7, #0, #16
3234 MLA r11, r5, r12, r11
3235 MOV r12, #0xcff
3236 SBFX r6, r9, #0, #16
3237 SBFX r7, r11, #0, #16
3238 MUL r6, r12, r6
3239 MUL r7, r12, r7
3240 MOV r12, #0xd01
3241 SBFX r4, r6, #0, #16
3242 SBFX r5, r7, #0, #16
3243 MLA r9, r12, r4, r9
3244 MLA r11, r12, r5, r11
3245 LDM r0, {r4, r5}
3246 BFC r9, #0, #16
3247 BFC r11, #0, #16
3248 ORR r9, r9, r8, LSR #16
3249 ORR r11, r11, r10, LSR #16
3250 ADD r8, r4, r9
3251 ADD r10, r5, r11
3252 BFC r9, #0, #16
3253 BFC r11, #0, #16
3254 ADD r4, r4, r9
3255 ADD r5, r5, r11
3256 BFI r4, r8, #0, #16
3257 BFI r5, r10, #0, #16
3258#endif /* !WOLFSSL_ARM_ARCH_7M */
3259 STM r0!, {r4, r5}
3260 POP {r8}
3261#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3262 BNE L_mlkem_thumb2_basemul_mont_add_loop
3263#else
3264 BNE.N L_mlkem_thumb2_basemul_mont_add_loop
3265#endif
3266 POP {r4, r5, r6, r7, r8, r9, r10, r11, pc}
3267 /* Cycle Count = 162 */
3268 .size mlkem_thumb2_basemul_mont_add,.-mlkem_thumb2_basemul_mont_add
3269 .text
3270 .align 4
3271 .globl mlkem_thumb2_csubq
3272 .type mlkem_thumb2_csubq, %function
3273mlkem_thumb2_csubq:
3274 PUSH {r4, r5, r6, r7, r8, r9, r10, r11, lr}
3275 MOV r11, #0xd01
3276 MOV r12, #0xd01
3277#ifndef WOLFSSL_ARM_ARCH_7M
3278 MOVT r12, #0xd01
3279#endif /* !WOLFSSL_ARM_ARCH_7M */
3280 MOV lr, #0x8000
3281 MOVT lr, #0x8000
3282 MOV r1, #0x100
3283L_mlkem_thumb2_csubq_loop:
3284 LDM r0, {r2, r3, r4, r5}
3285#ifndef WOLFSSL_ARM_ARCH_7M
3286 SSUB16 r2, r2, r12
3287 SSUB16 r3, r3, r12
3288 SSUB16 r4, r4, r12
3289 SSUB16 r5, r5, r12
3290 AND r6, r2, lr
3291 AND r7, r3, lr
3292 AND r8, r4, lr
3293 AND r9, r5, lr
3294 LSR r6, r6, #15
3295 LSR r7, r7, #15
3296 LSR r8, r8, #15
3297 LSR r9, r9, #15
3298 MUL r6, r6, r11
3299 MUL r7, r7, r11
3300 MUL r8, r8, r11
3301 MUL r9, r9, r11
3302 SADD16 r2, r2, r6
3303 SADD16 r3, r3, r7
3304 SADD16 r4, r4, r8
3305 SADD16 r5, r5, r9
3306#else
3307 SUB r6, r2, r12
3308 SUB r2, r2, r12, LSL #16
3309 BFI r2, r6, #0, #16
3310 SUB r7, r3, r12
3311 SUB r3, r3, r12, LSL #16
3312 BFI r3, r7, #0, #16
3313 SUB r8, r4, r12
3314 SUB r4, r4, r12, LSL #16
3315 BFI r4, r8, #0, #16
3316 SUB r9, r5, r12
3317 SUB r5, r5, r12, LSL #16
3318 BFI r5, r9, #0, #16
3319 AND r6, r2, lr
3320 AND r7, r3, lr
3321 AND r8, r4, lr
3322 AND r9, r5, lr
3323 LSR r6, r6, #15
3324 LSR r7, r7, #15
3325 LSR r8, r8, #15
3326 LSR r9, r9, #15
3327 MUL r6, r6, r11
3328 MUL r7, r7, r11
3329 MUL r8, r8, r11
3330 MUL r9, r9, r11
3331 ADD r10, r2, r6
3332 BFC r6, #0, #16
3333 ADD r2, r2, r6
3334 BFI r2, r10, #0, #16
3335 ADD r10, r3, r7
3336 BFC r7, #0, #16
3337 ADD r3, r3, r7
3338 BFI r3, r10, #0, #16
3339 ADD r10, r4, r8
3340 BFC r8, #0, #16
3341 ADD r4, r4, r8
3342 BFI r4, r10, #0, #16
3343 ADD r10, r5, r9
3344 BFC r9, #0, #16
3345 ADD r5, r5, r9
3346 BFI r5, r10, #0, #16
3347#endif /* !WOLFSSL_ARM_ARCH_7M */
3348 STM r0!, {r2, r3, r4, r5}
3349 SUBS r1, r1, #0x8
3350#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3351 BNE L_mlkem_thumb2_csubq_loop
3352#else
3353 BNE.N L_mlkem_thumb2_csubq_loop
3354#endif
3355 POP {r4, r5, r6, r7, r8, r9, r10, r11, pc}
3356 /* Cycle Count = 101 */
3357 .size mlkem_thumb2_csubq,.-mlkem_thumb2_csubq
3358 .text
3359 .align 4
3360 .globl mlkem_thumb2_rej_uniform
3361 .type mlkem_thumb2_rej_uniform, %function
3362mlkem_thumb2_rej_uniform:
3363 PUSH {r4, r5, r6, r7, r8, r9, r10, lr}
3364 MOV r8, #0xd01
3365 MOV r9, #0x0
3366L_mlkem_thumb2_rej_uniform_loop_no_fail:
3367 CMP r1, #0x8
3368#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3369 BLT L_mlkem_thumb2_rej_uniform_done_no_fail
3370#else
3371 BLT.N L_mlkem_thumb2_rej_uniform_done_no_fail
3372#endif
3373 LDM r2!, {r4, r5, r6}
3374 UBFX r7, r4, #0, #12
3375 STRH r7, [r0, r9]
3376 SUB r10, r7, r8
3377 LSR r10, r10, #31
3378 SUB r1, r1, r10
3379 ADD r9, r9, r10, LSL #1
3380 UBFX r7, r4, #12, #12
3381 STRH r7, [r0, r9]
3382 SUB r10, r7, r8
3383 LSR r10, r10, #31
3384 SUB r1, r1, r10
3385 ADD r9, r9, r10, LSL #1
3386 UBFX r7, r4, #24, #8
3387 BFI r7, r5, #8, #4
3388 STRH r7, [r0, r9]
3389 SUB r10, r7, r8
3390 LSR r10, r10, #31
3391 SUB r1, r1, r10
3392 ADD r9, r9, r10, LSL #1
3393 UBFX r7, r5, #4, #12
3394 STRH r7, [r0, r9]
3395 SUB r10, r7, r8
3396 LSR r10, r10, #31
3397 SUB r1, r1, r10
3398 ADD r9, r9, r10, LSL #1
3399 UBFX r7, r5, #16, #12
3400 STRH r7, [r0, r9]
3401 SUB r10, r7, r8
3402 LSR r10, r10, #31
3403 SUB r1, r1, r10
3404 ADD r9, r9, r10, LSL #1
3405 UBFX r7, r5, #28, #4
3406 BFI r7, r6, #4, #8
3407 STRH r7, [r0, r9]
3408 SUB r10, r7, r8
3409 LSR r10, r10, #31
3410 SUB r1, r1, r10
3411 ADD r9, r9, r10, LSL #1
3412 UBFX r7, r6, #8, #12
3413 STRH r7, [r0, r9]
3414 SUB r10, r7, r8
3415 LSR r10, r10, #31
3416 SUB r1, r1, r10
3417 ADD r9, r9, r10, LSL #1
3418 UBFX r7, r6, #20, #12
3419 STRH r7, [r0, r9]
3420 SUB r10, r7, r8
3421 LSR r10, r10, #31
3422 SUB r1, r1, r10
3423 ADD r9, r9, r10, LSL #1
3424 SUBS r3, r3, #0xc
3425#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3426 BNE L_mlkem_thumb2_rej_uniform_loop_no_fail
3427#else
3428 BNE.N L_mlkem_thumb2_rej_uniform_loop_no_fail
3429#endif
3430#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3431 B L_mlkem_thumb2_rej_uniform_done
3432#else
3433 B.N L_mlkem_thumb2_rej_uniform_done
3434#endif
3435L_mlkem_thumb2_rej_uniform_done_no_fail:
3436 CMP r1, #0x0
3437#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3438 BEQ L_mlkem_thumb2_rej_uniform_done
3439#else
3440 BEQ.N L_mlkem_thumb2_rej_uniform_done
3441#endif
3442L_mlkem_thumb2_rej_uniform_loop:
3443 LDM r2!, {r4, r5, r6}
3444 UBFX r7, r4, #0, #12
3445 CMP r7, r8
3446#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3447 BGE L_mlkem_thumb2_rej_uniform_fail_0
3448#else
3449 BGE.N L_mlkem_thumb2_rej_uniform_fail_0
3450#endif
3451 STRH r7, [r0, r9]
3452 SUBS r1, r1, #0x1
3453 ADD r9, r9, #0x2
3454#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3455 BEQ L_mlkem_thumb2_rej_uniform_done
3456#else
3457 BEQ.N L_mlkem_thumb2_rej_uniform_done
3458#endif
3459L_mlkem_thumb2_rej_uniform_fail_0:
3460 UBFX r7, r4, #12, #12
3461 CMP r7, r8
3462#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3463 BGE L_mlkem_thumb2_rej_uniform_fail_1
3464#else
3465 BGE.N L_mlkem_thumb2_rej_uniform_fail_1
3466#endif
3467 STRH r7, [r0, r9]
3468 SUBS r1, r1, #0x1
3469 ADD r9, r9, #0x2
3470#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3471 BEQ L_mlkem_thumb2_rej_uniform_done
3472#else
3473 BEQ.N L_mlkem_thumb2_rej_uniform_done
3474#endif
3475L_mlkem_thumb2_rej_uniform_fail_1:
3476 UBFX r7, r4, #24, #8
3477 BFI r7, r5, #8, #4
3478 CMP r7, r8
3479#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3480 BGE L_mlkem_thumb2_rej_uniform_fail_2
3481#else
3482 BGE.N L_mlkem_thumb2_rej_uniform_fail_2
3483#endif
3484 STRH r7, [r0, r9]
3485 SUBS r1, r1, #0x1
3486 ADD r9, r9, #0x2
3487#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3488 BEQ L_mlkem_thumb2_rej_uniform_done
3489#else
3490 BEQ.N L_mlkem_thumb2_rej_uniform_done
3491#endif
3492L_mlkem_thumb2_rej_uniform_fail_2:
3493 UBFX r7, r5, #4, #12
3494 CMP r7, r8
3495#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3496 BGE L_mlkem_thumb2_rej_uniform_fail_3
3497#else
3498 BGE.N L_mlkem_thumb2_rej_uniform_fail_3
3499#endif
3500 STRH r7, [r0, r9]
3501 SUBS r1, r1, #0x1
3502 ADD r9, r9, #0x2
3503#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3504 BEQ L_mlkem_thumb2_rej_uniform_done
3505#else
3506 BEQ.N L_mlkem_thumb2_rej_uniform_done
3507#endif
3508L_mlkem_thumb2_rej_uniform_fail_3:
3509 UBFX r7, r5, #16, #12
3510 CMP r7, r8
3511#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3512 BGE L_mlkem_thumb2_rej_uniform_fail_4
3513#else
3514 BGE.N L_mlkem_thumb2_rej_uniform_fail_4
3515#endif
3516 STRH r7, [r0, r9]
3517 SUBS r1, r1, #0x1
3518 ADD r9, r9, #0x2
3519#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3520 BEQ L_mlkem_thumb2_rej_uniform_done
3521#else
3522 BEQ.N L_mlkem_thumb2_rej_uniform_done
3523#endif
3524L_mlkem_thumb2_rej_uniform_fail_4:
3525 UBFX r7, r5, #28, #4
3526 BFI r7, r6, #4, #8
3527 CMP r7, r8
3528#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3529 BGE L_mlkem_thumb2_rej_uniform_fail_5
3530#else
3531 BGE.N L_mlkem_thumb2_rej_uniform_fail_5
3532#endif
3533 STRH r7, [r0, r9]
3534 SUBS r1, r1, #0x1
3535 ADD r9, r9, #0x2
3536#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3537 BEQ L_mlkem_thumb2_rej_uniform_done
3538#else
3539 BEQ.N L_mlkem_thumb2_rej_uniform_done
3540#endif
3541L_mlkem_thumb2_rej_uniform_fail_5:
3542 UBFX r7, r6, #8, #12
3543 CMP r7, r8
3544#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3545 BGE L_mlkem_thumb2_rej_uniform_fail_6
3546#else
3547 BGE.N L_mlkem_thumb2_rej_uniform_fail_6
3548#endif
3549 STRH r7, [r0, r9]
3550 SUBS r1, r1, #0x1
3551 ADD r9, r9, #0x2
3552#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3553 BEQ L_mlkem_thumb2_rej_uniform_done
3554#else
3555 BEQ.N L_mlkem_thumb2_rej_uniform_done
3556#endif
3557L_mlkem_thumb2_rej_uniform_fail_6:
3558 UBFX r7, r6, #20, #12
3559 CMP r7, r8
3560#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3561 BGE L_mlkem_thumb2_rej_uniform_fail_7
3562#else
3563 BGE.N L_mlkem_thumb2_rej_uniform_fail_7
3564#endif
3565 STRH r7, [r0, r9]
3566 SUBS r1, r1, #0x1
3567 ADD r9, r9, #0x2
3568#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3569 BEQ L_mlkem_thumb2_rej_uniform_done
3570#else
3571 BEQ.N L_mlkem_thumb2_rej_uniform_done
3572#endif
3573L_mlkem_thumb2_rej_uniform_fail_7:
3574 SUBS r3, r3, #0xc
3575#if defined(__GNUC__) || defined(__ICCARM__) || defined(__IAR_SYSTEMS_ICC__)
3576 BGT L_mlkem_thumb2_rej_uniform_loop
3577#else
3578 BGT.N L_mlkem_thumb2_rej_uniform_loop
3579#endif
3580L_mlkem_thumb2_rej_uniform_done:
3581 LSR r0, r9, #1
3582 POP {r4, r5, r6, r7, r8, r9, r10, pc}
3583 /* Cycle Count = 225 */
3584 .size mlkem_thumb2_rej_uniform,.-mlkem_thumb2_rej_uniform
3585#endif /* WOLFSSL_HAVE_MLKEM */
3586#endif /* WOLFSSL_ARMASM_THUMB2 */
3587#endif /* WOLFSSL_ARMASM */
3588
3589#if defined(__linux__) && defined(__ELF__)
3590.section .note.GNU-stack,"",%progbits
3591#endif
3592#endif /* !WOLFSSL_ARMASM_INLINE */