- Use the Windows API to seed the fallback random generator. This ensures to always have a random seed, even when libcurl is built with a vtls backend lacking a random generator API, such as rustls (experimental), GSKit and certain mbedTLS builds, or, when libcurl is built without a TLS backend. We reuse the Windows-specific random function from the Schannel backend. - Implement support for `BCryptGenRandom()` [1] on Windows, as a replacement for the deprecated `CryptGenRandom()` [2] function. It is used as the secure random generator for Schannel, and also to provide entropy for libcurl's fallback random generator. The new function is supported on Vista and newer via its `bcrypt.dll`. It is used automatically when building for supported versions. It also works in UWP apps (the old function did not). - Clear entropy buffer before calling the Windows random generator. This avoids using arbitrary application memory as entropy (with `CryptGenRandom()`) and makes sure to return in a predictable state when an API call fails. [1] https://docs.microsoft.com/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom [2] https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom Closes #9027 |
||
|---|---|---|
| .. | ||
| cmdline-opts | ||
| examples | ||
| libcurl | ||
| .gitignore | ||
| ALTSVC.md | ||
| BINDINGS.md | ||
| BUFREF.md | ||
| BUG-BOUNTY.md | ||
| BUGS.md | ||
| CHECKSRC.md | ||
| CIPHERS.md | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| CODE_REVIEW.md | ||
| CODE_STYLE.md | ||
| CONTRIBUTE.md | ||
| curl-config.1 | ||
| CURL-DISABLE.md | ||
| DEPRECATE.md | ||
| DYNBUF.md | ||
| EXPERIMENTAL.md | ||
| FAQ | ||
| FEATURES.md | ||
| GOVERNANCE.md | ||
| HELP-US.md | ||
| HISTORY.md | ||
| HSTS.md | ||
| HTTP2.md | ||
| HTTP3.md | ||
| HTTP-COOKIES.md | ||
| HYPER.md | ||
| INSTALL | ||
| INSTALL.cmake | ||
| INSTALL.md | ||
| INTERNALS.md | ||
| KNOWN_BUGS | ||
| MAIL-ETIQUETTE | ||
| Makefile.am | ||
| MANUAL.md | ||
| mk-ca-bundle.1 | ||
| MQTT.md | ||
| NEW-PROTOCOL.md | ||
| options-in-versions | ||
| PARALLEL-TRANSFERS.md | ||
| README.md | ||
| RELEASE-PROCEDURE.md | ||
| ROADMAP.md | ||
| RUSTLS.md | ||
| SECURITY-PROCESS.md | ||
| SSL-PROBLEMS.md | ||
| SSLCERTS.md | ||
| THANKS | ||
| THANKS-filter | ||
| TheArtOfHttpScripting.md | ||
| TODO | ||
| URL-SYNTAX.md | ||
| VERSIONS.md | ||
Documentation
you will find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.
If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.