Добавлена библиотека curl и решены проблемы при запуске программы
Этот коммит содержится в:
19
curl/dep/brotli/LICENSE.txt
Обычный файл
19
curl/dep/brotli/LICENSE.txt
Обычный файл
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
95
curl/dep/brotli/README.md
Обычный файл
95
curl/dep/brotli/README.md
Обычный файл
@@ -0,0 +1,95 @@
|
||||
<p align="center">
|
||||
<img src="https://github.com/google/brotli/actions/workflows/build_test.yml/badge.svg" alt="GitHub Actions Build Status" href="https://github.com/google/brotli/actions?query=branch%3Amaster">
|
||||
<img src="https://oss-fuzz-build-logs.storage.googleapis.com/badges/brotli.svg" alt="Fuzzing Status" href="https://oss-fuzz-build-logs.storage.googleapis.com/index.html#brotli">
|
||||
</p>
|
||||
<p align="center"><img src="https://brotli.org/brotli.svg" alt="Brotli" width="64"></p>
|
||||
|
||||
### Introduction
|
||||
|
||||
Brotli is a generic-purpose lossless compression algorithm that compresses data
|
||||
using a combination of a modern variant of the LZ77 algorithm, Huffman coding
|
||||
and 2nd order context modeling, with a compression ratio comparable to the best
|
||||
currently available general-purpose compression methods. It is similar in speed
|
||||
with deflate but offers more dense compression.
|
||||
|
||||
The specification of the Brotli Compressed Data Format is defined in [RFC 7932](https://tools.ietf.org/html/rfc7932).
|
||||
|
||||
Brotli is open-sourced under the MIT License, see the LICENSE file.
|
||||
|
||||
> **Please note:** brotli is a "stream" format; it does not contain
|
||||
> meta-information, like checksums or uncompresssed data length. It is possible
|
||||
> to modify "raw" ranges of the compressed stream and the decoder will not
|
||||
> notice that.
|
||||
|
||||
### Build instructions
|
||||
|
||||
#### Vcpkg
|
||||
|
||||
You can download and install brotli using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
|
||||
|
||||
git clone https://github.com/Microsoft/vcpkg.git
|
||||
cd vcpkg
|
||||
./bootstrap-vcpkg.sh
|
||||
./vcpkg integrate install
|
||||
./vcpkg install brotli
|
||||
|
||||
The brotli port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
|
||||
|
||||
#### Bazel
|
||||
|
||||
See [Bazel](http://www.bazel.build/)
|
||||
|
||||
#### CMake
|
||||
|
||||
The basic commands to build and install brotli are:
|
||||
|
||||
$ mkdir out && cd out
|
||||
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./installed ..
|
||||
$ cmake --build . --config Release --target install
|
||||
|
||||
You can use other [CMake](https://cmake.org/) configuration.
|
||||
|
||||
#### Python
|
||||
|
||||
To install the latest release of the Python module, run the following:
|
||||
|
||||
$ pip install brotli
|
||||
|
||||
To install the tip-of-the-tree version, run:
|
||||
|
||||
$ pip install --upgrade git+https://github.com/google/brotli
|
||||
|
||||
See the [Python readme](python/README.md) for more details on installing
|
||||
from source, development, and testing.
|
||||
|
||||
### Contributing
|
||||
|
||||
We glad to answer/library related questions in
|
||||
[brotli mailing list](https://groups.google.com/forum/#!forum/brotli).
|
||||
|
||||
Regular issues / feature requests should be reported in
|
||||
[issue tracker](https://github.com/google/brotli/issues).
|
||||
|
||||
For reporting vulnerability please read [SECURITY](SECURITY.md).
|
||||
|
||||
For contributing changes please read [CONTRIBUTING](CONTRIBUTING.md).
|
||||
|
||||
### Benchmarks
|
||||
* [Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/) / [Unstable Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/unstable/)
|
||||
* [Large Text Compression Benchmark](http://mattmahoney.net/dc/text.html)
|
||||
* [Lzturbo Benchmark](https://sites.google.com/site/powturbo/home/benchmark)
|
||||
|
||||
### Related projects
|
||||
> **Disclaimer:** Brotli authors take no responsibility for the third party projects mentioned in this section.
|
||||
|
||||
Independent [decoder](https://github.com/madler/brotli) implementation by Mark Adler, based entirely on format specification.
|
||||
|
||||
JavaScript port of brotli [decoder](https://github.com/devongovett/brotli.js). Could be used directly via `npm install brotli`
|
||||
|
||||
Hand ported [decoder / encoder](https://github.com/dominikhlbg/BrotliHaxe) in haxe by Dominik Homberger. Output source code: JavaScript, PHP, Python, Java and C#
|
||||
|
||||
7Zip [plugin](https://github.com/mcmilk/7-Zip-Zstd)
|
||||
|
||||
Dart [native bindings](https://github.com/thosakwe/brotli)
|
||||
|
||||
Dart compression framework with [fast FFI-based Brotli implementation](https://pub.dev/documentation/es_compression/latest/brotli/brotli-library.html) with ready-to-use prebuilt binaries for Win/Linux/Mac
|
||||
2
curl/dep/cacert/LICENSE.url
Обычный файл
2
curl/dep/cacert/LICENSE.url
Обычный файл
@@ -0,0 +1,2 @@
|
||||
[InternetShortcut]
|
||||
URL=https://www.mozilla.org/media/MPL/2.0/index.txt
|
||||
24
curl/dep/libpsl/AUTHORS.txt
Обычный файл
24
curl/dep/libpsl/AUTHORS.txt
Обычный файл
@@ -0,0 +1,24 @@
|
||||
Authors of and contributors to libpsl.
|
||||
Thank you very much for spending your time !
|
||||
|
||||
Also many thanks for anyone who contributed ideas,
|
||||
took part in discussions or 'just' asked questions.
|
||||
|
||||
Please drop me a note if you feel you should have
|
||||
been mentioned here.
|
||||
|
||||
Tim Ruehsen (Implementation of libpsl)
|
||||
Daniel Kahn Gillmor (Discussion, Ideas, Organization, Code)
|
||||
Daniel Stenberg (Discussion, Ideas)
|
||||
Darshit Shah (Patching Wget to work with libpsl)
|
||||
Dagobert Michelsen (Fixed Solaris building)
|
||||
Christopher Meng (Fedora building)
|
||||
Jakub Čajka
|
||||
Giuseppe Scrivano
|
||||
Ryan Sleevi (Discussion, Requested DAFSA format and ICANN/PRIVATE support)
|
||||
Daurnimator (Code review, discussion, reports)
|
||||
Olle Liljenzin (Original DAFSA implementation and UTF-8 patch)
|
||||
Claudio Saveedra (Add support for PSL_TYPE_NO_STAR_RULE)
|
||||
Chun-wei Fan (Add NMake files)
|
||||
Xavier Claessens (Add Meson build system)
|
||||
Ignacio Casal Quinteiro (Improve Meson build)
|
||||
19
curl/dep/libpsl/COPYING.txt
Обычный файл
19
curl/dep/libpsl/COPYING.txt
Обычный файл
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2014-2024 Tim Rühsen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
237
curl/dep/libpsl/NEWS.txt
Обычный файл
237
curl/dep/libpsl/NEWS.txt
Обычный файл
@@ -0,0 +1,237 @@
|
||||
Copyright (C) 2014-2024 Tim Rühsen
|
||||
|
||||
13.01.2024 Release V0.21.5
|
||||
* Fix version.txt
|
||||
|
||||
13.01.2024 Release V0.21.4
|
||||
* Fix meson build (missing ICONV_CONST in config.h)
|
||||
|
||||
13.01.2024 Release V0.21.3
|
||||
* Improved build with meson
|
||||
* Fixed and improved build on Windows
|
||||
* Improved build instructions
|
||||
* Install psl-make-dafsa
|
||||
|
||||
26.12.2022 Release V0.21.2
|
||||
* Increased internal label size
|
||||
* Meson build improvements (needs meson >= 0.60.0)
|
||||
* Autoconf build improvements
|
||||
* Add instructions on how to build from tarball
|
||||
* Add WSAStartup() for Windows psl tool and tests
|
||||
* Bump gettext version to 0.19.3
|
||||
* Fix stack buffer overflow WRITE 1 in domain_to_punycode()
|
||||
(Relevant only when built without any IDNA library.)
|
||||
* Fix undefined behavior in library code
|
||||
* Ensures that calls to fopen() and stat() can handle largefiles
|
||||
* Several minor (non-functional) changes
|
||||
|
||||
18.07.2020 Release V0.21.1
|
||||
* Fixing a test due to recent changes in upstream PSL
|
||||
* Meson build improvements
|
||||
* Documentation cleanups
|
||||
* Use semantic versioning for git tags
|
||||
|
||||
16.04.2019 Release V0.21.0
|
||||
* Add -b/--batch to 'psl' to suppress printing the domain
|
||||
* Add support for Meson build system
|
||||
* Improve build system
|
||||
* Improve Windows compatibility
|
||||
* Remove NLS / gettext
|
||||
* Several cleanups and cosmetics
|
||||
|
||||
26.04.2018 Release V0.20.2
|
||||
* Fix non srcdir builds
|
||||
* Add API decoration
|
||||
* Fix for MSVC/Win32 builds
|
||||
* Detection fallback from libidn2 to libcu, libidn
|
||||
* Fix MinGW cross builds on Linux
|
||||
* Add NMake Makefiles for Visual Studio builds
|
||||
|
||||
26.02.2018 Release V0.20.1
|
||||
* Fix issue introduced with PSL_TYPE_NO_STAR_RULE in V0.20.0
|
||||
* Fix SO_VERSION to 8:0:3
|
||||
* Improve unit tests
|
||||
|
||||
22.02.2018 Release V0.20.0
|
||||
* Remove hard-coded gcc flag in Makefile.am
|
||||
* Prevent excessive CPU cycles on large inputs
|
||||
* New flag PSL_TYPE_NO_STAR_RULE to skip star rule
|
||||
|
||||
09.11.2017 Release V0.19.1
|
||||
* Add the forgotten commit with NEWS and configure.ac
|
||||
|
||||
09.11.2017 Release V0.19.0
|
||||
* New function psl_free_string()
|
||||
* psl_make_dafsa now works with python2 and python3
|
||||
* psl_*count() functions now return -1 if info is not available
|
||||
* Fixed unsigned integer overflow in _mem_is_ascii()
|
||||
* Add -fsanitize-address-use-after-scope to --enable-asan if available
|
||||
|
||||
20.07.2017 Release V0.18.0
|
||||
* Fix order of files in psl_latest()
|
||||
* Add fuzzing architecture
|
||||
* Fix memleak in _psl_is_public_suffix()
|
||||
* Add configure option --enable-asan (Address sanitizer)
|
||||
* Add configure option --enable-usan (Undefined sanitizer)
|
||||
* Add configure option --enable-cfi (Control Flow Integrity)
|
||||
* Fix finding libidn2 for static builds
|
||||
* Fix use of uninitialized stack value
|
||||
* Fix buffer overflow in libicu build
|
||||
* Use libidn2 as default for builds (former libicu)
|
||||
* Add pkg-config support for libidn and libidn2
|
||||
|
||||
16.01.2017 Release V0.17.0
|
||||
* Use TR46 non-transitional for IDNA (libicu, libidn2 >= 0.14)
|
||||
* Fix coverage upload from TravisCI to Coveralls
|
||||
* New tests to cover psl_latest() and psl_dist_filename()
|
||||
|
||||
15.12.2016 Release V0.16.1
|
||||
* Fix SO_VERSION to 6:0:1
|
||||
* Add --use-latest-psl to tools/psl as default
|
||||
|
||||
16.12.2016 Release V0.16.0
|
||||
* Add functions psl_latest() and psl_dist_filename()
|
||||
* Do not taint out variable on error in psl_str_to_utf8lower()
|
||||
* Replace psl2c by psl-make-dafsa
|
||||
* Add missing includes for OpenBSD
|
||||
* Fix typos
|
||||
* Update copyright year
|
||||
|
||||
14.11.2016 Release V0.15.0
|
||||
* Python3 compatibility for psl-make-dafsa
|
||||
* Support for UTF-8 in DAFSA data
|
||||
* Skip punycode conversion if DAFSA has UTF-8
|
||||
* Better code coverage by test suite
|
||||
* Code cleanup and enhancements
|
||||
* Install man pages for psl-make-dafsa and psl
|
||||
* Enhancements to the documentation
|
||||
|
||||
30.07.2016 Release V0.14.0
|
||||
* Remove unneeded libraries from tools/psl link step
|
||||
* Use https instead of http where possible
|
||||
* Add man page for tools/psl
|
||||
* Add header magic to DAFSA files
|
||||
* Rename make_dafsa.py to psl-make-dafsa
|
||||
* Add man page for psl-make-dafsa
|
||||
|
||||
02.03.2016 Release V0.13.0
|
||||
* Use tests.txt as PSL test file by default
|
||||
* Slightly shorter DAFSA array when sorting input
|
||||
* Check for python 2.7+ in configure.ac
|
||||
* Fix python3 incompatibilities in make_dafsa.py
|
||||
|
||||
02.01.2016 Release V0.12.0
|
||||
* Load DAFSA binaries via psl_load_file() via auto-detection
|
||||
* Add more tests
|
||||
* Remove psl_builtin_compile_time()
|
||||
* Compile PSL into DAFSA using make_dafsa.py
|
||||
* Avoid libicu dependency with --enable-runtime=no
|
||||
* Test on new Travis-CI build farm
|
||||
* Use DAFSA format for builtin PSL data
|
||||
* Add function psl_is_public_suffix2()
|
||||
* Fix psl_builtin_outdated()
|
||||
* Fix several bugs
|
||||
* Cleanup code
|
||||
|
||||
23.09.2015 Release V0.11.0
|
||||
* Add new function psl_check_version_number()
|
||||
* Add version defines to include file
|
||||
|
||||
19.09.2015 Release V0.10.0
|
||||
* Code simplified
|
||||
* Less data entries, faster lookups
|
||||
* Add new function psl_suffix_wildcard_count()
|
||||
* Add new helper function psl_builtin_outdated()
|
||||
|
||||
15.09.2015 Release V0.9.0
|
||||
* Added semantic checks to PSL entries when generating built-in data
|
||||
* Fix test suite for TLD exceptions (not used yet in reality)
|
||||
* Removed wrong assumption from test suite
|
||||
* Support explicit combination of 'foo.bar' and '*.foo.bar'
|
||||
|
||||
14.08.2015 Release V0.8.1
|
||||
* Fix documentation
|
||||
* Add syntax checking of tests_psl.txt
|
||||
|
||||
06.08.2015 Release V0.8.0
|
||||
* Add https://github.com/publicsuffix as git submodule
|
||||
* Support Debian 'Reproducible Builds'
|
||||
* Fix generation of docs
|
||||
* Check UTF-8 sequences for validity (for libidn<=1.30)
|
||||
* Add LICENSE to distribution tarball
|
||||
* Fix compatibility function strndup
|
||||
|
||||
21.02.2015 Release V0.7.1
|
||||
* include configured PSL file into tarball
|
||||
|
||||
30.01.2015 Release V0.7.0
|
||||
* include effective_tld_names.dat of date 29.12.2014
|
||||
* do not install docs when gtk-doc is not installed
|
||||
* fix several compatibility issues with Solaris
|
||||
* fix 'make distcheck' after 'make clean'
|
||||
* mark API as stable
|
||||
* use pkg-config to detect libicu
|
||||
|
||||
14.11.2014 Release V0.6.2
|
||||
* revoked commit from 0.6.1 to satisfy Travis-CI
|
||||
|
||||
14.11.2014 Release V0.6.1
|
||||
* include effective_tld_names.dat of date 04.11.2014
|
||||
* fix pkg-config configuration
|
||||
|
||||
28.10.2014 Release V0.6.0
|
||||
* added support for IP addresses in psl_is_cookie_domain_acceptable()
|
||||
* removed qsort_r() for compatibility
|
||||
* check for alloca.h before including
|
||||
* include effective_tld_names.dat of date 27.10.2014
|
||||
|
||||
03.08.2014 Release V0.5.1
|
||||
* fix ASCII check for architectures where char <> signed char
|
||||
|
||||
02.07.2014 Release V0.5.0
|
||||
* added configure --enable-runtime to allow for IDNA library
|
||||
selection as runtime dependency
|
||||
* added configure --enable-builtin to allow for IDNA library
|
||||
selection for generating the built-in PSL data
|
||||
* fixed psl_str_to_utf8lower prototype
|
||||
* fixed authors name to UTF-8
|
||||
|
||||
23.06.2014 Release V0.4.0
|
||||
* depend on libicu for punycode, utf-8 and lowercase conversions
|
||||
* added function psl_str_to_utf8lower()
|
||||
* fixed locale issues
|
||||
* introducing psl_error_t for error codes + defines
|
||||
* removed redundant code from psl2c.c
|
||||
* updated docs
|
||||
* psl utility reads from stdin if no argument specified
|
||||
|
||||
10.06.2014 Release V0.3.1
|
||||
* link psl utility dynamically
|
||||
* fix output of psl_filename()
|
||||
* cleanup for psl --help
|
||||
* removed check for idn2 in autogen.sh
|
||||
|
||||
05.06.2014 Release V0.3.0
|
||||
* added support for libicu in psl2c (IDNA2008 UTS#46)
|
||||
this needs pkg-config and libicu-dev installed
|
||||
* added --version to psl utility
|
||||
|
||||
31.05.2014 Release V0.2.5
|
||||
* added psl_get_version()
|
||||
* removed version from library name
|
||||
|
||||
30.05.2014 Release V0.2.4
|
||||
* fixed psl_builtin() to return NULL if no built-in PSL data is available
|
||||
|
||||
27.05.2014 Release V0.2.3
|
||||
* changed API version to 0.2
|
||||
|
||||
26.05.2014 Release V0.2.2
|
||||
* changed code to C89
|
||||
* added a few test cases
|
||||
* build static library by default
|
||||
|
||||
25.04.2014 Hotfix release V0.2.1
|
||||
* updated to the latest Publix Suffix List
|
||||
|
||||
25.04.2014 Initial release V0.2
|
||||
133
curl/dep/libressl/COPYING.txt
Обычный файл
133
curl/dep/libressl/COPYING.txt
Обычный файл
@@ -0,0 +1,133 @@
|
||||
|
||||
LibReSSL files are retained under the copyright of the authors. New
|
||||
additions are ISC licensed as per OpenBSD's normal licensing policy,
|
||||
or are placed in the public domain.
|
||||
|
||||
The OpenSSL code is distributed under the terms of the original OpenSSL
|
||||
licenses which follow:
|
||||
|
||||
LICENSE ISSUES
|
||||
==============
|
||||
|
||||
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
|
||||
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
||||
See below for the actual license texts. In case of any license issues
|
||||
related to OpenSSL please contact openssl-core@openssl.org.
|
||||
|
||||
OpenSSL License
|
||||
---------------
|
||||
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
Original SSLeay License
|
||||
-----------------------
|
||||
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
3239
curl/dep/libressl/ChangeLog.txt
Обычный файл
3239
curl/dep/libressl/ChangeLog.txt
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
238
curl/dep/libressl/README.md
Обычный файл
238
curl/dep/libressl/README.md
Обычный файл
@@ -0,0 +1,238 @@
|
||||

|
||||
|
||||
## Official portable version of [LibreSSL](https://www.libressl.org)
|
||||
|
||||
[](https://github.com/libressl/portable/actions/workflows/linux.yml)
|
||||
[](https://github.com/libressl/portable/actions/workflows/macos.yml)
|
||||
[](https://github.com/libressl/portable/actions/workflows/windows.yml)
|
||||
[](https://github.com/libressl/portable/actions/workflows/android.yml)
|
||||
[](https://github.com/libressl/portable/actions/workflows/solaris.yml)
|
||||
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libressl)
|
||||
|
||||
LibreSSL is a fork of [OpenSSL](https://www.openssl.org) 1.0.1g developed by the
|
||||
[OpenBSD](https://www.openbsd.org) project. Our goal is to modernize the codebase,
|
||||
improve security, and apply best practice development processes from OpenBSD.
|
||||
|
||||
## Compatibility with OpenSSL
|
||||
|
||||
LibreSSL provides much of the OpenSSL 1.1 API. The OpenSSL 3 API is not currently
|
||||
supported. Incompatibilities between the projects exist and are unavoidable since
|
||||
both evolve with different goals and priorities. Important incompatibilities will
|
||||
be addressed if possible and as long as they are not too detrimental to LibreSSL's
|
||||
goals of simplicity, security and sanity. We do not add new features, ciphers and
|
||||
API without a solid reason and require that new code be clean and of high quality.
|
||||
|
||||
LibreSSL is not ABI compatible with any release of OpenSSL, or necessarily
|
||||
earlier releases of LibreSSL. You will need to relink your programs to
|
||||
LibreSSL in order to use it, just as in moving between major versions of OpenSSL.
|
||||
LibreSSL's installed library version numbers are incremented to account for
|
||||
ABI and API changes.
|
||||
|
||||
## Compatibility with other operating systems
|
||||
|
||||
While primarily developed on and taking advantage of APIs available on OpenBSD,
|
||||
the LibreSSL portable project attempts to provide working alternatives for
|
||||
other operating systems, and assists with improving OS-native implementations
|
||||
where possible.
|
||||
|
||||
At the time of this writing, LibreSSL is known to build and work on:
|
||||
|
||||
* Linux (kernel 3.17 or later recommended)
|
||||
* FreeBSD (tested with 9.2 and later)
|
||||
* NetBSD (7.0 or later recommended)
|
||||
* HP-UX (11i)
|
||||
* Solaris 11 and later
|
||||
* Mac OS X (tested with 10.8 and later)
|
||||
* AIX (5.3 and later)
|
||||
* Emscripten (3.1.44 and later)
|
||||
|
||||
LibreSSL also supports the following Windows environments:
|
||||
|
||||
* Microsoft Windows (Windows 7 / Windows Server 2008r2 or later, x86 and x64)
|
||||
* Wine (32-bit and 64-bit)
|
||||
* MinGW-w64, Cygwin, and Visual Studio
|
||||
|
||||
Official release tarballs are available at your friendly neighborhood
|
||||
OpenBSD mirror in directory
|
||||
[LibreSSL](https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/),
|
||||
although we suggest that you use a [mirror](https://www.openbsd.org/ftp.html).
|
||||
|
||||
The LibreSSL portable build framework is also
|
||||
[mirrored](https://github.com/libressl/portable) on GitHub.
|
||||
|
||||
Please report bugs either to the public libressl@openbsd.org mailing list,
|
||||
or to the GitHub
|
||||
[issue tracker](https://github.com/libressl/portable/issues)
|
||||
|
||||
Severe vulnerabilities or bugs requiring coordination with OpenSSL can be
|
||||
sent to the core team at libressl-security@openbsd.org.
|
||||
|
||||
# Building LibreSSL
|
||||
|
||||
## Building from a Git checkout
|
||||
|
||||
If you have checked out this source using Git, or have downloaded a source
|
||||
tarball from GitHub, follow these initial steps to prepare the source tree for
|
||||
building. _Note: Your build will fail if you do not follow these instructions!
|
||||
If you cannot follow these instructions or cannot meet these prerequisites,
|
||||
please download an official release distribution from
|
||||
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/ instead. Using official
|
||||
releases is strongly advised if you are not a developer._
|
||||
|
||||
1. Ensure that you have a bash shell. This is also required on Windows.
|
||||
2. Ensure that you have the following packages installed:
|
||||
automake, autoconf, git, libtool, perl.
|
||||
3. Run `./autogen.sh` to prepare the source tree for building.
|
||||
|
||||
## Build steps using configure
|
||||
|
||||
Once you have the source tree prepared, run these commands to build and install:
|
||||
|
||||
```sh
|
||||
./configure # see ./configure --help for configuration options
|
||||
make check # runs builtin unit tests
|
||||
make install # set DESTDIR= to install to an alternate location
|
||||
```
|
||||
|
||||
Alternatively, it is possible to run `./dist.sh` to prepare a tarball.
|
||||
|
||||
## Build steps using CMake
|
||||
|
||||
Once you have the source tree prepared, run these commands to build and install:
|
||||
|
||||
```sh
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
make test
|
||||
```
|
||||
|
||||
For faster builds, you can use Ninja:
|
||||
|
||||
```sh
|
||||
mkdir build-ninja
|
||||
cd build-ninja
|
||||
cmake -G"Ninja" ..
|
||||
ninja
|
||||
ninja test
|
||||
```
|
||||
|
||||
Or another supported build system like Visual Studio:
|
||||
|
||||
```sh
|
||||
mkdir build-vs2022
|
||||
cd build-vs2022
|
||||
cmake -G"Visual Studio 17 2022" ..
|
||||
```
|
||||
|
||||
#### Additional CMake Options
|
||||
|
||||
| Option Name | Default | Description |
|
||||
|-------------------------|--------:|-----------------------------------------------------------------------------------------------------------------|
|
||||
| `LIBRESSL_SKIP_INSTALL` | `OFF` | allows skipping install() rules. Can be specified from command line using <br>```-DLIBRESSL_SKIP_INSTALL=ON``` |
|
||||
| `LIBRESSL_APPS` | `ON` | allows skipping application builds. Apps are required to run tests |
|
||||
| `LIBRESSL_TESTS` | `ON` | allows skipping of tests. Tests are only available in static builds |
|
||||
| `BUILD_SHARED_LIBS` | `OFF` | CMake option for building shared libraries. |
|
||||
| `ENABLE_ASM` | `ON` | builds assembly optimized rules. |
|
||||
| `ENABLE_EXTRATESTS` | `OFF` | Enable extra tests that may be unreliable on some platforms |
|
||||
| `ENABLE_NC` | `OFF` | Enable installing TLS-enabled nc(1) |
|
||||
| `OPENSSLDIR` | Blank | Set the default openssl directory. Can be specified from command line using <br>```-DOPENSSLDIR=<dirname>``` |
|
||||
|
||||
## Build information for specific systems
|
||||
|
||||
### HP-UX (11i)
|
||||
|
||||
Set the UNIX_STD environment variable to `2003` before running `configure`
|
||||
in order to build with the HP C/aC++ compiler. See the "standards(5)" man
|
||||
page for more details.
|
||||
|
||||
```sh
|
||||
export UNIX_STD=2003
|
||||
./configure
|
||||
make
|
||||
```
|
||||
|
||||
### MinGW-w64 - Windows
|
||||
|
||||
LibreSSL builds against relatively recent versions of [MinGW-w64](https://www.mingw-w64.org/), not to be
|
||||
confused with the original mingw.org project. MinGW-w64 3.2 or later
|
||||
should work. See [README.mingw.md](README.mingw.md) for more information.
|
||||
|
||||
### Emscripten
|
||||
|
||||
When configuring LibreSSL for use with Emscripten, make sure to prepend
|
||||
`emcmake` to your `cmake` configuration command. Once configured, you can
|
||||
proceed with your usual `cmake` commands. For example:
|
||||
|
||||
```sh
|
||||
emcmake cmake . -Bbuild
|
||||
cmake --build build --config Release
|
||||
ctest --test-dir build -C Release --output-on-failure
|
||||
```
|
||||
|
||||
# Using LibreSSL
|
||||
|
||||
## CMake
|
||||
|
||||
Make a new folder in your project root (where your main `CMakeLists.txt` file is
|
||||
located) called CMake. Copy the `FindLibreSSL.cmake` file to that folder, and
|
||||
add the following line to your main `CMakeLists.txt`:
|
||||
|
||||
```cmake
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
||||
```
|
||||
|
||||
After your `add_executable` or `add_library` line in your `CMakeLists.txt` file
|
||||
add the following:
|
||||
|
||||
```cmake
|
||||
find_package(LibreSSL REQUIRED)
|
||||
```
|
||||
|
||||
It will tell CMake to find LibreSSL and if found will let you use the following
|
||||
3 interfaces in your `CMakeLists.txt` file:
|
||||
|
||||
* LibreSSL::Crypto
|
||||
* LibreSSL::SSL
|
||||
* LibreSSL::TLS
|
||||
|
||||
If you for example want to use the LibreSSL TLS library in your test program,
|
||||
include it like so (SSL and Crypto are required by TLS and included
|
||||
automatically too):
|
||||
|
||||
```cmake
|
||||
target_link_libraries(test LibreSSL::TLS)
|
||||
```
|
||||
|
||||
Full example:
|
||||
|
||||
```cmake
|
||||
cmake_minimum_required(VERSION 3.10.0)
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
||||
|
||||
project(test)
|
||||
|
||||
add_executable(test Main.cpp)
|
||||
|
||||
find_package(LibreSSL REQUIRED)
|
||||
|
||||
target_link_libraries(test LibreSSL::TLS)
|
||||
```
|
||||
|
||||
#### Linux
|
||||
|
||||
Following the guide in the sections above to compile LibreSSL using make and
|
||||
running `sudo make install` will install LibreSSL to the `/usr/local/` folder,
|
||||
and will be found automatically by find_package. If your system installs it to
|
||||
another location, or you have placed them yourself in a different location, you
|
||||
can set the CMake variable `LIBRESSL_ROOT_DIR` to the correct path, to help
|
||||
CMake find the library.
|
||||
|
||||
#### Windows
|
||||
|
||||
Placing the library files in `C:/Program Files/LibreSSL/lib` and the include
|
||||
files in `C:/Program Files/LibreSSL/include` should let CMake find them
|
||||
automatically, but it is recommended that you use CMake-GUI to set the paths.
|
||||
It is more convenient as you can have the files in any folder you choose.
|
||||
43
curl/dep/libssh2/COPYING.txt
Обычный файл
43
curl/dep/libssh2/COPYING.txt
Обычный файл
@@ -0,0 +1,43 @@
|
||||
/* Copyright (C) 2004-2007 Sara Golemon <sarag@libssh2.org>
|
||||
* Copyright (C) 2005,2006 Mikhail Gusarov <dottedmag@dottedmag.net>
|
||||
* Copyright (C) 2006-2007 The Written Word, Inc.
|
||||
* Copyright (C) 2007 Eli Fant <elifantu@mail.ru>
|
||||
* Copyright (C) 2009-2023 Daniel Stenberg
|
||||
* Copyright (C) 2008, 2009 Simon Josefsson
|
||||
* Copyright (C) 2000 Markus Friedl
|
||||
* Copyright (C) 2015 Microsoft Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms,
|
||||
* with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holder nor the names
|
||||
* of any other contributors may be used to endorse or
|
||||
* promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGE.
|
||||
*/
|
||||
10896
curl/dep/libssh2/NEWS.txt
Обычный файл
10896
curl/dep/libssh2/NEWS.txt
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
19
curl/dep/libssh2/README.txt
Обычный файл
19
curl/dep/libssh2/README.txt
Обычный файл
@@ -0,0 +1,19 @@
|
||||
libssh2 - SSH2 library
|
||||
======================
|
||||
|
||||
libssh2 is a library implementing the SSH2 protocol, available under
|
||||
the revised BSD license.
|
||||
|
||||
Web site: https://libssh2.org/
|
||||
|
||||
Mailing list: https://lists.haxx.se/listinfo/libssh2-devel
|
||||
|
||||
License: see COPYING
|
||||
|
||||
Source code: https://github.com/libssh2/libssh2
|
||||
|
||||
Web site source code: https://github.com/libssh2/www
|
||||
|
||||
Installation instructions are in:
|
||||
- docs/INSTALL_CMAKE for CMake
|
||||
- docs/INSTALL_AUTOTOOLS for Autotools
|
||||
325
curl/dep/libssh2/RELEASE-NOTES.txt
Обычный файл
325
curl/dep/libssh2/RELEASE-NOTES.txt
Обычный файл
@@ -0,0 +1,325 @@
|
||||
libssh2 1.11.1
|
||||
|
||||
Deprecation notices:
|
||||
|
||||
- Starting October 2024, the following algos go deprecated and will be
|
||||
disabled in default builds (with an option to enable them):
|
||||
|
||||
- DSA: `ssh-dss` hostkeys.
|
||||
You can enable it now with `-DLIBSSH2_DSA_ENABLE`.
|
||||
Disabled by default in OpenSSH 7.0 (2015-08-11).
|
||||
Support to be removed by early 2025 from OpenSSH.
|
||||
- MD5-based MACs and hashes: `hmac-md5`, `hmac-md5-96`,
|
||||
`LIBSSH2_HOSTKEY_HASH_MD5`
|
||||
You can disable it now with `-DLIBSSH2_NO_MD5`.
|
||||
Disabled by default since OpenSSH 7.2 (2016-02-29).
|
||||
- 3DES cipher: `3des-cbc`
|
||||
You can disable it now with `-DLIBSSH2_NO_3DES`.
|
||||
Disabled by default since OpenSSH 7.4 (2016-12-19).
|
||||
- RIPEMD-160 MACs: `hmac-ripemd160`, `hmac-ripemd160@openssh.com`
|
||||
You can disable it now with `-DLIBSSH2_NO_HMAC_RIPEMD`.
|
||||
Removed in OpenSSH 7.6 (2017-10-03).
|
||||
- Blowfish cipher: `blowfish-cbc`
|
||||
You can disable it now with `-DLIBSSH2_NO_BLOWFISH`.
|
||||
Removed in OpenSSH 7.6 (2017-10-03).
|
||||
- RC4 ciphers: `arcfour`, `arcfour128`
|
||||
You can disable it now with `-DLIBSSH2_NO_RC4`.
|
||||
Removed in OpenSSH 7.6 (2017-10-03).
|
||||
- CAST cipher: `cast128-cbc`
|
||||
You can disable it now with `-DLIBSSH2_NO_CAST`.
|
||||
Removed in OpenSSH 7.6 (2017-10-03).
|
||||
|
||||
- Starting April 2025, above options will be deleted from the
|
||||
libssh2 codebase.
|
||||
|
||||
- Default builds will also disable support for old-style, MD5-based
|
||||
encrypted private keys.
|
||||
You can disable it now with `-DLIBSSH2_NO_MD5_PEM`.
|
||||
|
||||
This release includes the following enhancements and bugfixes:
|
||||
|
||||
- autotools: fix to update `LDFLAGS` for each detected dependency (d19b6190 #1384 #1381 #1377)
|
||||
- autotools: delete `--disable-tests` option, fix CI tests (e051ae34 #1271 #715 revert: 7483edfa)
|
||||
- autotools: show the default for `hidden-symbols` option (a3f5594a #1269)
|
||||
- autotools: enable `-Wunused-macros` with gcc (ecdf5199 #1262 #1227 #1224)
|
||||
- autotools: fix dotless gcc and Apple clang version detections (89ccc83c #1232 #1187)
|
||||
- autotools: show more clang/gcc version details (fb580161 #1230)
|
||||
- autotools: avoid warnings in libtool stub code (96682bd5 #1227 #1224)
|
||||
- autotools: sync warning enabler code with curl (5996fefe #1223)
|
||||
- autotools: rename variable (ce5f208a #1222)
|
||||
- autotools: picky warning options tidy-up (cdca8cff #1221)
|
||||
- autotools: fix `cp` to preserve attributes and timestamp in `Makefile.am` (f64e6318)
|
||||
- autotools: fix selecting WinCNG in cross-builds (and more) (00a3b88c #1187 #1186)
|
||||
- autotools: use comma separator in `Requires.private` of `libssh2.pc` (7f83de14 #1124)
|
||||
- autotools: remove `AB_INIT` from `configure.ac` (f4f52ccc)
|
||||
- autotools: improve libz position (c89174a7 #1077 #941 #1075 #1013 regr: 4f0f4bff)
|
||||
- autotools: skip tests requiring static lib if `--disable-static` (572c57c9 #1072 #663 #1056 regr: 83853f8a)
|
||||
- build: stop detecting `sys/param.h` header (2677d3b0 #1418 #1415)
|
||||
- build: silence warnings inside `FD_SET()`/`FD_ISSET()` macros (323a14b2 #1379)
|
||||
- build: drop `-Wformat-nonliteral` warning suppressions (c452c5cc #1342)
|
||||
- build: enable `-pedantic-errors` (3ec53f3e #1286)
|
||||
- build: add mingw-w64 support to `LIBSSH2_PRINTF()` attribute (f8c45794 #1287)
|
||||
- build: add `LIBSSH2_NO_DEPRECATED` option (b1414503 #1267 #1266 #1260 #1259)
|
||||
- build: enable missing OpenSSF-recommended warnings, with fixes (afa6b865 #1257)
|
||||
- build: enable more compiler warnings and fix them (7ecc309c #1224)
|
||||
- build: picky warning updates (328a96b3 #1219)
|
||||
- build: revert: respect autotools `DLL_EXPORT` in `libssh2.h` (481be044 #1141 #917 revert: fb1195cf)
|
||||
- build: stop requiring libssl from openssl (c84745e3 #1128)
|
||||
- build: tidy-up `libssh2.pc.in` variable names (5720dd9f #1125)
|
||||
- build: add/fix `Requires.private` packages in `libssh2.pc` (ef538069 #1123)
|
||||
- buildconf: drop (814a850c #1441 follow: fc5d7788)
|
||||
- checksrc: update, check all sources, fix fallouts (1117b677 #1457)
|
||||
- checksrc: sync with curl (8cd473c9 #1272)
|
||||
- checksrc: fix spelling in comment (a95d401f)
|
||||
- checksrc: modernise Perl file open (3d309f9b)
|
||||
- checksrc: switch to dot file (d67a91aa #1052)
|
||||
- ci: use Ninja with cmake (20ad047d #1458)
|
||||
- ci: disable dependency tracking in autotools builds (e44f0418 #1396)
|
||||
- ci: fix mbedtls runners on macOS (84411539 #1381)
|
||||
- ci: enable Unity mode for most CMake builds (1bfae57b #1367 #1034)
|
||||
- ci: add shellcheck job and script (d88b9bcd)
|
||||
- ci: verify build and install from tarball (a86e27e8 #1362)
|
||||
- ci: add reproducibility test for `maketgz` (2d765e45 #1360)
|
||||
- ci: use Linux runner for BSDs, add arm64 FreeBSD 14 job (6f86b196 #1343)
|
||||
- ci: do not parallelize `distcheck` job (5e65dd87 #1339)
|
||||
- ci: add FreeBSD 14 job, fix issues (46333adf #1277)
|
||||
- ci: add OmniOS job, fix issues (5e0ec991)
|
||||
- ci: show compiler in cross/cygwin job names (c9124088)
|
||||
- ci: add OpenBSD (v7.4) job + fix build error in example (0c9a8e35 #1250)
|
||||
- ci: add NetBSD (v9.3) job (65c7a7a5)
|
||||
- ci: update and speed up FreeBSD job (eee4e805)
|
||||
- ci: use absolute path in `CMAKE_INSTALL_PREFIX` (74948816 #1247)
|
||||
- ci: boost mbedTLS build speed (236e79a1 #1245)
|
||||
- ci: add BoringSSL job (cmake, gcc, amd64) (c9dd3566 #1233)
|
||||
- ci: fixup FreeBSD version, bump mbedTLS (fea6664e #1217)
|
||||
- ci: add FreeBSD 13.2 job (a7d2a573 #1215)
|
||||
- ci: mbedTLS 3.5.0 (5e190442 #1202)
|
||||
- ci: update actions, use shallow clones with appveyor (d468a33f #1199)
|
||||
- ci: replace `mv` + `chmod` with `install` in `Dockerfile` (5754fed6 #1175)
|
||||
- ci: set file mode early in `appveyor_docker.yml` (633db55f)
|
||||
- ci: add spellcheck (codespell) (a79218d3)
|
||||
- ci: add MSYS builds (autotools and cmake) (d43b8d9b #1162)
|
||||
- ci: add Cygwin builds (autotools and cmake) (f1e96e73 #1161)
|
||||
- ci: add mingw-w64 UWP build (1215aa5f #1155 #1147)
|
||||
- ci: add missing timeout to 'autotools distcheck' step (6265ffdb)
|
||||
- ci: add non-static autotools i386 build, ignore GHA updates on AppVeyor (c6e137f7 #1074 #1072)
|
||||
- ci: prefer `=` operator in shell snippets (e5c03043 #1073)
|
||||
- ci: drop redundant/unused vars, sync var names (ab8e95bc #1059)
|
||||
- ci: add i386 Linux build (with mbedTLS) (abdf40c7 #1057 #1053)
|
||||
- ci/appveyor: reduce test runs (workaround for infrastructure permafails) (b5e68bdc #1461)
|
||||
- ci/appveyor: increase wait for SSH server on GHA (bf3af90b)
|
||||
- ci/appveyor: bump to OpenSSL 3.2.1 (53d9c1a6 #1363 #1348)
|
||||
- ci/appveyor: re-enable parallel mode (e190e5b2 #1294 #884 #867)
|
||||
- ci/appveyor: delete UWP job broken since Visual Studio upgrade (d0a7f1da #1275)
|
||||
- ci/appveyor: YAML/PowerShell formatting, shorten variable name (06fd721f #1200)
|
||||
- ci/appveyor: move to pure PowerShell (8a081fd9 #1197)
|
||||
- ci/GHA: revert concurrency and improve permissions (e4c042f6)
|
||||
- ci/GHA: FreeBSD 14.1, actions bump (ae04b1b9 #1424)
|
||||
- ci/GHA: fix wolfSSL-from-source AES-GCM tests (1c0b07a7 #1409 #1408)
|
||||
- ci/GHA: add Linux job with latest wolfSSL built from source (d4cea53f #1408 #1299 #1020)
|
||||
- ci/GHA: tidy up build-from-source steps (2c633033)
|
||||
- ci/GHA: show configure logs on failure and other tidy-ups (dab48398 #1403)
|
||||
- ci/GHA: bump parallel jobs to nproc+1 (6f3d3bc8 #1402)
|
||||
- ci/GHA: show test logs on failure (b8ffa7a5 #1401)
|
||||
- ci/GHA: fix `Dockerfile` failing after Ubuntu package update (839bb84e #1400)
|
||||
- ci/GHA: use ubuntu-latest with OmniOS job (50143d58)
|
||||
- ci/GHA: shell syntax tidy-up (3b23e039 #1390)
|
||||
- ci/GHA: bump NetBSD/OpenBSD, add NetBSD arm64 job (e980af72 #1388)
|
||||
- ci/GHA: tidy up wolfSSL autotools config on macOS (5953c1f1 #1383)
|
||||
- ci/GHA: shorter mbedTLS autotools workaround (736e3d7d #1382 #1381)
|
||||
- ci/GHA: fix gcrypt with autotools/macOS/Homebrew/ARM64 (ae2770de #1377)
|
||||
- ci/GHA: fix verbose option for autotools jobs (499b27ae #1376)
|
||||
- ci/GHA: dump `config.log` on failure for macOS autotools jobs (4fa69214 #1375)
|
||||
- ci/GHA: fix `autoreconf` failure on macOS/Homebrew (0b64b30b #1374)
|
||||
- ci/GHA: fixup Homebrew location (for ARM runners) (6128aee0 #1373)
|
||||
- ci/GHA: review/fixup auto-cancel settings (b08cfbc9 #1292)
|
||||
- ci/GHA: restore curly braces in `if` (36748270 #1145)
|
||||
- ci/GHA: simplify `if` strings (cab3db58 #1140)
|
||||
- cmake: sync and improve Find modules, add `pkg-config` native detection (45064137 #1445 #1420)
|
||||
- cmake: generate `LIBSSH2_PC_LIBS_PRIVATE` dynamically (c87f1296 #1466)
|
||||
- cmake: add comment about `ibssh2.pc.in` variables (14b1b9d0)
|
||||
- cmake: support absolute `CMAKE_INSTALL_INCLUDEDIR`/`CMAKE_INSTALL_LIBDIR` (d70cee36 #1465)
|
||||
- cmake: rename two variables and initialize them (0fce9dcc #1464)
|
||||
- cmake: prefer `find_dependency()` in `libssh2-config.cmake` (d9c2e550 #1460)
|
||||
- cmake: tidy up syntax, minor improvements (9d9ee780 #1446)
|
||||
- cmake: rename mbedTLS and wolfSSL Find modules (570de0f2)
|
||||
- cmake: fixup version detection in mbedTLS Find module (8e3c40b2 #1444)
|
||||
- cmake: mbedTLS detection tidy-ups (6d1d13c2 #1438)
|
||||
- cmake: add quotes, delete ending dirseps (2bb46d44 #1437 #1166)
|
||||
- cmake: sync formatting in `cmake/Find*` modules (a0310699)
|
||||
- cmake: tidy up function name casing in `CopyRuntimeDependencies.cmake` (03547cb8)
|
||||
- cmake: use the imported target of FindOpenSSL module (82b09f9b #1322)
|
||||
- cmake: rename picky warnings script (64d6789f #1225)
|
||||
- cmake: fix multiple include of libssh2 package (932d6a32 #1216)
|
||||
- cmake: show crypto backend in feature summary (20387285 #1211)
|
||||
- cmake: simplify showing CMake version (fc00bdd7 #1203)
|
||||
- cmake: cleanup mbedTLS version detection more (4c241d5c #1196 #1192)
|
||||
- cmake: delete duplicate `include()` (30eef0a6)
|
||||
- cmake: improve/fix mbedTLS detection (41594675 #1192 #1191)
|
||||
- cmake: tidy-up `foreach()` syntax (4a64ca14 #1180)
|
||||
- cmake: verify `libssh2_VERSION` in integration tests (a20572e9)
|
||||
- cmake: show cmake versions in ci (87f5769b)
|
||||
- cmake: quote more strings (e9c7d3af #1173)
|
||||
- cmake: add `ExternalProject` integration test (aeaefaf6 #1171)
|
||||
- cmake: add integration tests (8715c3d5 #1170)
|
||||
- cmake: (re-)add aliases for `add_subdirectory()` builds (4ff64ae3 #1169)
|
||||
- cmake: style tidy-up (3fa5282d #1166)
|
||||
- cmake: add `LIB_NAME` variable (5453fc80 #1159)
|
||||
- cmake: tidy-up concatenation in `CMAKE_MODULE_PATH` (ae7d5108 #1157)
|
||||
- cmake: replace `libssh2` literals with `PROJECT_NAME` variable (72fd2595 #1152)
|
||||
- cmake: fix `STREQUAL` check in error branch (42d3bf13 #1151)
|
||||
- cmake: cache more config values on Windows (11a03690 #1142)
|
||||
- cmake: streamline invocation (f58f77b5 #1138)
|
||||
- cmake: merge `set_target_properties()` calls (a9091007 #1132)
|
||||
- cmake: (re-)add zlib to `Libs.private` in `libssh2.pc` (64643018 #1131)
|
||||
- cmake: use `wolfssl/options.h` for detection, like autotools (c5ec6c49 #1130)
|
||||
- cmake: add openssl libs to `Libs.private` in `libssh2.pc` (5cfa59d3 #1127)
|
||||
- cmake: bump minimum CMake version to v3.7.0 (9cd18f45 #1126)
|
||||
- cmake: CMAKE_SOURCE_DIR -> PROJECT_SOURCE_DIR (0f396aa9 #1121)
|
||||
- cmake: tidy-ups (2fc36790 #1122)
|
||||
- cmake: re-add `Libssh2:libssh2` for compatibility + lowercase namespace (2da13c13 #1104 #731 #1103)
|
||||
- copyright: remove years from copyright headers (187d89bb #1082)
|
||||
- disable DSA by default (b7ab0faa #1435 #1433)
|
||||
- docs: update `INSTALL_AUTOTOOLS` (2f0efde3 #1316)
|
||||
- docs: replace SHA1 with SHA256 in CMake example (766bde9f)
|
||||
- example: restore `sys/time.h` for AIX (24503cb9 #1340 #1335 #1334 #1001 regr: e53aae0e)
|
||||
- example: use `libssh2_socket_t` in X11 example (3f60ccb7)
|
||||
- example: replace remaining libssh2_scp_recv with libssh2_scp_recv2 in output messages (8d69e63d #1258 follow: 6c84a426)
|
||||
- example: fix regression in `ssh2_exec.c` (279a2e57 #1106 #861 #846 #1105 regr: b13936bd)
|
||||
- example, tests: call `WSACleanup()` for each `WSAStartup()` (94b6bad3 #1283)
|
||||
- example, tests: fix/silence `-Wformat-truncation=2` gcc warnings (744e059f)
|
||||
- hostkey: do not advertise ssh-rsa when SHA1 is disabled (82d1b8ff #1093 #1092)
|
||||
- kex: prevent possible double free of hostkey (b3465418 #1452)
|
||||
- kex: always check for null pointers before calling _libssh2_bn_set_word (9f23a3bb #1423)
|
||||
- kex: fix a memory leak in key exchange (19101843 #1412 #1404)
|
||||
- kex: always add extension indicators to kex_algorithms (00e2a07e #1327 #1326)
|
||||
- libssh2.h: add deprecated function warnings (9839ebe5 #1289 #1260)
|
||||
- libssh2.h: add portable `LIBSSH2_SOCKET_CLOSE()` macro (28dbf016 #1278)
|
||||
- libssh2.h: use `_WIN32` for Windows detection instead of rolling our own (631e7734 #1238)
|
||||
- libssh2.pc: reference mbedcrypto pkgconfig (c149a127 #1405)
|
||||
- libssh2.pc: re-add & extend support for static-only libssh2 builds (624abe27 #1119 #1114)
|
||||
- libssh2.pc: don't put `@LIBS@` in pc file (1209c16d)
|
||||
- mac: add empty hash functions for `mac_method_hmac_aesgcm` to not crash when e.g. setting `LIBSSH2_METHOD_CRYPT_CS` (b2738391 #1321)
|
||||
- mac: handle low-level errors (f64885b6 #1297)
|
||||
- Makefile.mk: delete Windows-focused raw GNU Make build (43485579 #1204)
|
||||
- maketgz: reproducible tarballs/zip, display tarball hashes (d52fe1b4 #1357 #1359)
|
||||
- maketgz: `set -eu`, reproducibility, improve zip, add CI test (cba7f975 #1353)
|
||||
- man: improve `libssh2_userauth_publickey_from*` manpages (581b72aa #1347 #1308 #652)
|
||||
- man: fix double spaces and dash escaping (a3ffc422 #1210)
|
||||
- man: add description to `libssh2_session_get_blocking.3` (67e39091 #1185)
|
||||
- mbedtls: always init ECDSA mbedtls_pk_context (a50d7deb #1430)
|
||||
- mbedtls: correctly initialize values (ECDSA) (1701d5c0 #1428 #1421)
|
||||
- mbedtls: expose `mbedtls_pk_load_file()` for our use (1628f6ca #1421 #1393 #1349 follow: e973493f)
|
||||
- mbedtls: add workaround + FIXME to build with 3.6.0 (2e4c5ec4 #1349)
|
||||
- mbedtls: improve disabling `-Wredundant-decls` (ecec68a2 #1226 #1224)
|
||||
- mbedtls: include `version.h` for `MBEDTLS_VERSION_NUMBER` (9d7bc253 #1095 #1094)
|
||||
- mbedtls: use more `size_t` to sync up with `crypto.h` (1153ebde #1054 #879 #846 #1053)
|
||||
- md5: allow disabling old-style encrypted private keys at build-time (eb9f9de2 #1181)
|
||||
- mingw: fix printf mask for 64-bit integers (36c1e1d1 #1091 #876 #846 #1090)
|
||||
- misc: flatten `_libssh2_explicit_zero` if tree (74e74288 #1149)
|
||||
- NMakefile: delete (c515eed3 #1134 #1129)
|
||||
- openssl: free allocated resources when using openssl3 (b942bad1 #1459)
|
||||
- openssl: fix memory leaks in `_libssh2_ecdsa_curve_name_with_octal_new` and `_libssh2_ecdsa_verify` (8d3bc19b #1449)
|
||||
- openssl: fix calculating DSA public key with OpenSSL 3 (8b3c6e9d #1380)
|
||||
- openssl: initialize BIGNUMs to NULL in `gen_publickey_from_dsa` for OpenSSL 3 (f1133c75 #1320)
|
||||
- openssl: fix cppcheck found NULL dereferences (f2945905 #1304)
|
||||
- openssl: delete internal `read_openssh_private_key_from_memory()` (34aff5ff #1306)
|
||||
- openssl: use OpenSSL 3 HMAC API, add `no-deprecated` CI job (363dcbf4 #1243 #1235 #1207)
|
||||
- openssl: make a function static, add `#ifdef` comments (efee9133 #1246 #248 follow: 03092292)
|
||||
- openssl: fix DSA code to use OpenSSL 3 API (82581941 #1244 #1207)
|
||||
- openssl: fix `EC_KEY` reference with OpenSSL 3 `no-deprecated` build (487152f4 #1236 #1235 #1207)
|
||||
- openssl: use non-deprecated APIs with OpenSSL 3.x (b0ab005f #1207)
|
||||
- openssl: silence `-Wunused-value` warnings (bf285500 #1205)
|
||||
- openssl: use automatic initialization with LibreSSL 2.7.0+ (d79047c9 #1146 #302)
|
||||
- openssl: add missing check for `LIBRESSL_VERSION_NUMBER` before use (4a42f42e #1117 #1115)
|
||||
- os400: drop vsprintf() use (40e817ff #1462 #1457)
|
||||
- os400: Add two recent files to the distribution (e4c65e5b #1364)
|
||||
- os400: fix shellcheck warnings in scripts (fixups) (81341e1e #1366 #1364 #1358)
|
||||
- os400: fix shellcheck warnings in scripts (c6625707 #1358)
|
||||
- os400: maintain up to date (8457c37a #1309)
|
||||
- packet: properly bounds check packet_authagent_open() (88a960a8 #1179)
|
||||
- pem: fix private keys encrypted with AES-GCM methods (e87bdefa #1133)
|
||||
- reuse: upgrade to `REUSE.toml` (70b8bf31 #1419)
|
||||
- reuse: fix duplicate copyright warning (b9a4ed83)
|
||||
- reuse: comply with 3.1 spec and 2.0.0 checker (fe6239a1 #1102 #1101 #1098)
|
||||
- reuse: provide SPDX identifiers (f6aa31f4 #1084)
|
||||
- scp: fix missing cast for targets without large file support (c317e06f #1060 #1057 #1002 regr: 5db836b2)
|
||||
- session: support server banners up to 8192 bytes (was: 256) (1a9e8811 #1443 #1442)
|
||||
- session: add `libssh2_session_callback_set2()` (c0f69548 #1285)
|
||||
- session: handle EINTR from send/recv/poll/select to try again as the error is not fatal (798ed4a7 #1058 #955)
|
||||
- sftp: increase SFTP_HANDLE_MAXLEN back to 4092 (75de6a37 #1422)
|
||||
- sftp: implement posix-rename@openssh.com (fb652746 #1386)
|
||||
- src: implement chacha20-poly1305@openssh.com (492bc543 #1426 #584)
|
||||
- src: use `UINT32_MAX` (dc206408 #1413)
|
||||
- src: fix type warning in `libssh2_sftp_unlink` macro (ac2e8c73 #1406)
|
||||
- src: check the return value from `_libssh2_bn_*()` functions (95c824d5 #1354)
|
||||
- src: support RSA-SHA2 cert-based authentication (rsa-sha2-512_cert and rsa-sha2-256_cert) (3a6ab70d #1314)
|
||||
- src: check hash update/final success (4718ede4 #1303 #1301)
|
||||
- src: check hash init success (2ed9eb92 #1301)
|
||||
- src: add 'strict KEX' to fix CVE-2023-48795 "Terrapin Attack" (d34d9258 #1291 #1290)
|
||||
- src: disable `-Wsign-conversion` warnings, add option to re-enable (6e451669 #1284 #1257)
|
||||
- src: fix gcc 13 `-Wconversion` warning on Darwin (8cca7b77 #1209 follow: 08354e0a)
|
||||
- src: drop a redundant `#include` (1f0174d0 #1153)
|
||||
- src: improve MSVC C4701 warning fix (8b924999 #1086 #876 #1083)
|
||||
- src: bump `hash_len` to `size_t` in `LIBSSH2_HOSTKEY_METHOD` (8b917d76 #1076)
|
||||
- src: bump DSA and ECDSA sign `hash_len` to `size_t` (7b8e0225 #1055)
|
||||
- tests: avoid using `MAXPATHLEN`, for portability (12427f4f #1415 #198 #1414)
|
||||
- tests: fix excluding AES-GCM tests (fbd9d192 #1410)
|
||||
- tests: drop default cygpath option `-u` (38e50aa0)
|
||||
- tests: fix shellcheck issues in `test_sshd.test` (a2ac8c55)
|
||||
- tests: sync port number type with the rest of codebase (eb996af8)
|
||||
- tests: fall back to `$LOGNAME` for username (5326a5ce #1241 #1240)
|
||||
- tests: show cmake version used in integration tests (2cd2f40e #1201)
|
||||
- tests: formatting and tidy-ups (e61987a3)
|
||||
- tests: replace FIXME with comments (1a99a86a)
|
||||
- tests: add aes256-gcm encrypted key test (802336cf #1135 #1133)
|
||||
- tests: trap signals in scripts (b2916b28 #1098)
|
||||
- tests: cast to avoid `-Wchar-subscripts` with Cygwin (43df6a46 #1081 #1080)
|
||||
- test_read: make it run without Docker (57e9d18e #1139)
|
||||
- test_sshd.test: show sshd and test connect logs on harness failure (299c2040 #1097)
|
||||
- test_sshd.test: set a safe PID directory (e8cabdcf #1089)
|
||||
- test_sshd.test: minor cleanups (d29eea1d)
|
||||
- tidy-up: link updates (c905bfd2 #1434)
|
||||
- tidy-up: typo in comment (792e1b6f)
|
||||
- tidy-up: fix typo found by codespell (706ec36d)
|
||||
- tidy-up: bump casts from int to long for large C99 types in printfs (2e5a8719 #1264 #1257)
|
||||
- tidy-up: `unsigned` -> `unsigned int` (b136c379)
|
||||
- tidy-up: stop using leading underscores in macro names (c6589b88 #1248)
|
||||
- tidy-up: around `stdint.h` (bfa00f1b #1212)
|
||||
- tidy-up: fix typo in `readme.vms` (a9a79e7a)
|
||||
- tidy-up: use built-in `_WIN32` macro to detect Windows (6fbc9505 #1195)
|
||||
- tidy-up: drop `www.` from `www.libssh2.org` (6e3e8839 #1172)
|
||||
- tidy-up: delete duplicate word from comment (76307435)
|
||||
- tidy-up: avoid exclamations, prefer single quotes, in outputs (003fb454 #1079)
|
||||
- TODO: disable or drop weak algos (0b4bdc85 #1261)
|
||||
- transport: fix unstable connections over non-blocking sockets (de004875 #1454 #720 #1431 #1397)
|
||||
- transport: check ETM on remote end when receiving (bde10825 #1332 #1331)
|
||||
- transport: fix incorrect byte offset in debug message (2388a3aa #1096)
|
||||
- userauth: avoid oob with huge interactive kbd response (f3a85cad #1337)
|
||||
- userauth: add a new structure to separate memory read and file read (63b4c20e #773)
|
||||
- userauth: check whether `*key_method` is a NULL pointer instead of `key_method` (bec57c40)
|
||||
- wincng: fix `DH_GEX_MAXGROUP` set higher than supported (48584671 #1372 #493)
|
||||
- wincng: add to ci/GHA, add `./configure` option `--enable-ecdsa-wincng` (3f98bfb0 #1368 #1315)
|
||||
- wincng: add ECDSA support for host and user authentication (3e723437 #1315)
|
||||
- wincng: prefer `ULONG`/`DWORD` over `unsigned long` (186c1d63 #1165)
|
||||
- wincng: tidy-ups (7bb669b5 #1164)
|
||||
- wolfssl: drop header path hack (8ae1b2d7 #1439)
|
||||
- wolfssl: fix `EVP_Cipher()` use with v5.6.0 and older (a5b0fac2 #1407 #1394 #797 #1299 #1020)
|
||||
- wolfssl: bump version in upstream issue comment (5cab802c)
|
||||
- wolfssl: require v5.4.0 for AES-GCM (260a721c #1411 #1299 #1020)
|
||||
- wolfssl: enable debug logging in wolfSSL when compiled in (76e7a68a #1310)
|
||||
|
||||
This release would not have looked like this without help, code, reports and
|
||||
advice from friends like these:
|
||||
|
||||
Viktor Szakats, Michael Buckley, Patrick Monnerat, Ren Mingshuai,
|
||||
Will Cosgrove, Daniel Stenberg, Josef Cejka, Nicolas Mora, Ryan Kelley,
|
||||
Aaron Stone, Adam, Anders Borum, András Fekete, Andrei Augustin, binary1248,
|
||||
Brian Inglis, brucsc on GitHub, concussious on github, Dan Fandrich,
|
||||
dksslq on github, Haowei Hsu, Harmen Stoppels, Harry Mallon, Jack L,
|
||||
Jakob Egger, Jiwoo Park, João M. S. Silva, Joel Depooter, Johannes Passing,
|
||||
Jose Quaresma, Juliusz Sosinowicz, Kai Pastor, Kenneth Davidson,
|
||||
klux21 on github, Lyndon Brown, Marc Hoersken, mike-jumper, naddy,
|
||||
Nursan Valeyev, Paul Howarth, PewPewPew, Radek Brich, rahmanih on github,
|
||||
rolag on github, Seo Suchan, shubhamhii on github, Steve McIntyre,
|
||||
Tejaswi Kandula, Tobias Stoeckmann, Trzik, Xi Ruoyao
|
||||
80
curl/dep/libssh2/docs/AUTHORS.txt
Обычный файл
80
curl/dep/libssh2/docs/AUTHORS.txt
Обычный файл
@@ -0,0 +1,80 @@
|
||||
libssh2 is the result of many friendly people. This list is an attempt to
|
||||
mention all contributors. If we have missed anyone, tell us!
|
||||
|
||||
This list of names is a-z sorted.
|
||||
|
||||
Adam Gobiowski
|
||||
Alexander Holyapin
|
||||
Alexander Lamaison
|
||||
Alfred Gebert
|
||||
Ben Kibbey
|
||||
Bjorn Stenborg
|
||||
Carlo Bramini
|
||||
Cristian Rodríguez
|
||||
Daiki Ueno
|
||||
Dan Casey
|
||||
Dan Fandrich
|
||||
Daniel Stenberg
|
||||
Dave Hayden
|
||||
Dave McCaldon
|
||||
David J Sullivan
|
||||
David Robins
|
||||
Dmitry Smirnov
|
||||
Douglas Masterson
|
||||
Edink Kadribasic
|
||||
Erik Brossler
|
||||
Francois Dupoux
|
||||
Gellule Xg
|
||||
Grubsky Grigory
|
||||
Guenter Knauf
|
||||
Heiner Steven
|
||||
Henrik Nordstrom
|
||||
James Housleys
|
||||
Jasmeet Bagga
|
||||
Jean-Louis Charton
|
||||
Jernej Kovacic
|
||||
Joey Degges
|
||||
John Little
|
||||
Jose Baars
|
||||
Jussi Mononen
|
||||
Kamil Dudka
|
||||
Lars Nordin
|
||||
Mark McPherson
|
||||
Mark Smith
|
||||
Markus Moeller
|
||||
Matt Lilley
|
||||
Matthew Booth
|
||||
Maxime Larocque
|
||||
Mike Protts
|
||||
Mikhail Gusarov
|
||||
Neil Gierman
|
||||
Olivier Hervieu
|
||||
Paul Howarth
|
||||
Paul Querna
|
||||
Paul Veldkamp
|
||||
Peter Krempa
|
||||
Peter O'Gorman
|
||||
Peter Stuge
|
||||
Pierre Joye
|
||||
Rafael Kitover
|
||||
Romain Bondue
|
||||
Sara Golemon
|
||||
Satish Mittal
|
||||
Sean Peterson
|
||||
Selcuk Gueney
|
||||
Simon Hart
|
||||
Simon Josefsson
|
||||
Sofian Brabez
|
||||
Steven Ayre
|
||||
Steven Dake
|
||||
Steven Van Ingelgem
|
||||
TJ Saunders
|
||||
Tommy Lindgren
|
||||
Tor Arntsen
|
||||
Viktor Szakats
|
||||
Vincent Jaulin
|
||||
Vincent Torri
|
||||
Vlad Grachov
|
||||
Wez Furlong
|
||||
Yang Tse
|
||||
Zl Liu
|
||||
989
curl/dep/libssh2/docs/HACKING-CRYPTO.txt
Обычный файл
989
curl/dep/libssh2/docs/HACKING-CRYPTO.txt
Обычный файл
@@ -0,0 +1,989 @@
|
||||
Definitions needed to implement a specific crypto library
|
||||
|
||||
This document offers some hints about implementing a new crypto library
|
||||
interface.
|
||||
|
||||
A crypto library interface consists of at least a header file, defining
|
||||
entities referenced from the libssh2 core modules.
|
||||
Real code implementation (if needed), is left at the implementor's choice.
|
||||
|
||||
This document lists the entities that must/may be defined in the header file.
|
||||
|
||||
Procedures listed as "void" may indeed have a result type: the void indication
|
||||
indicates the libssh2 core modules never use the function result.
|
||||
|
||||
|
||||
0) Build system.
|
||||
|
||||
Adding a crypto backend to the autotools build system (./configure) is easy:
|
||||
|
||||
0.1) Add one new line in configure.ac
|
||||
|
||||
m4_set_add([crypto_backends], [newname])
|
||||
|
||||
This automatically creates a --with-crypto=newname option.
|
||||
|
||||
0.2) Add an m4_case stanza to LIBSSH2_CRYPTO_CHECK in acinclude.m4
|
||||
|
||||
This must check for all required libraries, and if found set and AC_SUBST a
|
||||
variable with the library linking flags. The recommended method is to use
|
||||
LIBSSH2_LIB_HAVE_LINKFLAGS from LIBSSH2_CRYPTO_CHECK, which automatically
|
||||
creates and handles a --with-$newname-prefix option and sets an
|
||||
LTLIBNEWNAME variable on success.
|
||||
|
||||
0.3) Add new header to src/Makefile.inc
|
||||
|
||||
0.4) Include new source in src/crypto.c
|
||||
|
||||
0.5) Add a new block in configure.ac
|
||||
|
||||
```
|
||||
elif test "$found_crypto" = "newname"; then
|
||||
LIBS="${LIBS} ${LTLIBNEWNAME}"
|
||||
```
|
||||
|
||||
0.6) Add CMake detection logic to CMakeLists.txt
|
||||
|
||||
1) Crypto library initialization/termination.
|
||||
|
||||
void libssh2_crypto_init(void);
|
||||
Initializes the crypto library. May be an empty macro if not needed.
|
||||
|
||||
void libssh2_crypto_exit(void);
|
||||
Terminates the crypto library use. May be an empty macro if not needed.
|
||||
|
||||
1.1) Crypto runtime detection
|
||||
|
||||
The libssh2_crypto_engine_t enum must include the new engine, and
|
||||
libssh2_crypto_engine() must return it when it is built in.
|
||||
|
||||
2) HMAC
|
||||
|
||||
libssh2_hmac_ctx
|
||||
Type of an HMAC computation context. Generally a struct.
|
||||
Used for all hash algorithms.
|
||||
|
||||
int _libssh2_hmac_ctx_init(libssh2_hmac_ctx *ctx);
|
||||
Initializes the HMAC computation context ctx.
|
||||
Called before setting-up the hash algorithm.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int _libssh2_hmac_update(libssh2_hmac_ctx *ctx,
|
||||
const void *data, int datalen);
|
||||
Continue computation of an HMAC on datalen bytes at data using context ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int _libssh2_hmac_final(libssh2_hmac_ctx *ctx,
|
||||
void output[]);
|
||||
Get the computed HMAC from context ctx into the output buffer. The
|
||||
minimum data buffer size depends on the HMAC hash algorithm.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
void _libssh2_hmac_cleanup(libssh2_hmac_ctx *ctx);
|
||||
Releases the HMAC computation context at ctx.
|
||||
|
||||
|
||||
3) Hash algorithms.
|
||||
|
||||
3.1) SHA-1
|
||||
Must always be implemented.
|
||||
|
||||
SHA_DIGEST_LENGTH
|
||||
#define to 20, the SHA-1 digest length.
|
||||
|
||||
libssh2_sha1_ctx
|
||||
Type of an SHA-1 computation context. Generally a struct.
|
||||
|
||||
int libssh2_sha1_init(libssh2_sha1_ctx *x);
|
||||
Initializes the SHA-1 computation context at x.
|
||||
Returns 1 for success and 0 for failure
|
||||
|
||||
int libssh2_sha1_update(libssh2_sha1_ctx ctx,
|
||||
const unsigned char *data,
|
||||
size_t len);
|
||||
Continue computation of SHA-1 on len bytes at data using context ctx.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha1_final(libssh2_sha1_ctx ctx,
|
||||
unsigned char output[SHA_DIGEST_LEN]);
|
||||
Get the computed SHA-1 signature from context ctx and store it into the
|
||||
output buffer.
|
||||
Release the context.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_hmac_sha1_init(libssh2_hmac_ctx *ctx,
|
||||
const void *key,
|
||||
int keylen);
|
||||
Setup the HMAC computation context ctx for an HMAC-SHA-1 computation using the
|
||||
keylen-byte key. Is invoked just after libssh2_hmac_ctx_init().
|
||||
Returns 1 for success and 0 for failure.
|
||||
|
||||
3.2) SHA-256
|
||||
Must always be implemented.
|
||||
|
||||
SHA256_DIGEST_LENGTH
|
||||
#define to 32, the SHA-256 digest length.
|
||||
|
||||
libssh2_sha256_ctx
|
||||
Type of an SHA-256 computation context. Generally a struct.
|
||||
|
||||
int libssh2_sha256_init(libssh2_sha256_ctx *x);
|
||||
Initializes the SHA-256 computation context at x.
|
||||
Returns 1 for success and 0 for failure
|
||||
|
||||
int libssh2_sha256_update(libssh2_sha256_ctx ctx,
|
||||
const unsigned char *data,
|
||||
size_t len);
|
||||
Continue computation of SHA-256 on len bytes at data using context ctx.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha256_final(libssh2_sha256_ctx ctx,
|
||||
unsigned char output[SHA256_DIGEST_LENGTH]);
|
||||
Gets the computed SHA-256 signature from context ctx into the output buffer.
|
||||
Release the context.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha256(const unsigned char *message,
|
||||
size_t len,
|
||||
unsigned char output[SHA256_DIGEST_LENGTH]);
|
||||
Computes the SHA-256 signature over the given message of length len and
|
||||
store the result into the output buffer.
|
||||
Return 1 if error, else 0.
|
||||
Note: Seems unused in current code, but defined in each crypto library backend.
|
||||
|
||||
LIBSSH2_HMAC_SHA256
|
||||
#define as 1 if the crypto library supports HMAC-SHA-256, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
int libssh2_hmac_sha256_init(libssh2_hmac_ctx *ctx,
|
||||
const void *key,
|
||||
int keylen);
|
||||
Setup the HMAC computation context ctx for an HMAC-256 computation using the
|
||||
keylen-byte key. Is invoked just after libssh2_hmac_ctx_init().
|
||||
Returns 1 for success and 0 for failure.
|
||||
|
||||
3.3) SHA-384
|
||||
Mandatory if ECDSA is implemented. Can be omitted otherwise.
|
||||
|
||||
SHA384_DIGEST_LENGTH
|
||||
#define to 48, the SHA-384 digest length.
|
||||
|
||||
libssh2_sha384_ctx
|
||||
Type of an SHA-384 computation context. Generally a struct.
|
||||
|
||||
int libssh2_sha384_init(libssh2_sha384_ctx *x);
|
||||
Initializes the SHA-384 computation context at x.
|
||||
Returns 1 for success and 0 for failure
|
||||
|
||||
int libssh2_sha384_update(libssh2_sha384_ctx ctx,
|
||||
const unsigned char *data,
|
||||
size_t len);
|
||||
Continue computation of SHA-384 on len bytes at data using context ctx.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha384_final(libssh2_sha384_ctx ctx,
|
||||
unsigned char output[SHA384_DIGEST_LENGTH]);
|
||||
Gets the computed SHA-384 signature from context ctx into the output buffer.
|
||||
Release the context.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha384(const unsigned char *message,
|
||||
size_t len,
|
||||
unsigned char output[SHA384_DIGEST_LENGTH]);
|
||||
Computes the SHA-384 signature over the given message of length len and
|
||||
store the result into the output buffer.
|
||||
Return 1 if error, else 0.
|
||||
|
||||
3.4) SHA-512
|
||||
Must always be implemented.
|
||||
|
||||
SHA512_DIGEST_LENGTH
|
||||
#define to 64, the SHA-512 digest length.
|
||||
|
||||
libssh2_sha512_ctx
|
||||
Type of an SHA-512 computation context. Generally a struct.
|
||||
|
||||
int libssh2_sha512_init(libssh2_sha512_ctx *x);
|
||||
Initializes the SHA-512 computation context at x.
|
||||
Returns 1 for success and 0 for failure
|
||||
|
||||
int libssh2_sha512_update(libssh2_sha512_ctx ctx,
|
||||
const unsigned char *data,
|
||||
size_t len);
|
||||
Continue computation of SHA-512 on len bytes at data using context ctx.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha512_final(libssh2_sha512_ctx ctx,
|
||||
unsigned char output[SHA512_DIGEST_LENGTH]);
|
||||
Gets the computed SHA-512 signature from context ctx into the output buffer.
|
||||
Release the context.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_sha512(const unsigned char *message,
|
||||
size_t len,
|
||||
unsigned char output[SHA512_DIGEST_LENGTH]);
|
||||
Computes the SHA-512 signature over the given message of length len and
|
||||
store the result into the output buffer.
|
||||
Return 1 if error, else 0.
|
||||
Note: Seems unused in current code, but defined in each crypto library backend.
|
||||
|
||||
LIBSSH2_HMAC_SHA512
|
||||
#define as 1 if the crypto library supports HMAC-SHA-512, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
int libssh2_hmac_sha512_init(libssh2_hmac_ctx *ctx,
|
||||
const void *key,
|
||||
int keylen);
|
||||
Setup the HMAC computation context ctx for an HMAC-512 computation using the
|
||||
keylen-byte key. Is invoked just after libssh2_hmac_ctx_init().
|
||||
Returns 1 for success and 0 for failure.
|
||||
|
||||
3.5) MD5
|
||||
LIBSSH2_MD5
|
||||
#define to 1 if the crypto library supports MD5, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
MD5_DIGEST_LENGTH
|
||||
#define to 16, the MD5 digest length.
|
||||
|
||||
libssh2_md5_ctx
|
||||
Type of an MD5 computation context. Generally a struct.
|
||||
|
||||
int libssh2_md5_init(libssh2_md5_ctx *x);
|
||||
Initializes the MD5 computation context at x.
|
||||
Returns 1 for success and 0 for failure
|
||||
|
||||
int libssh2_md5_update(libssh2_md5_ctx ctx,
|
||||
const unsigned char *data,
|
||||
size_t len);
|
||||
Continues computation of MD5 on len bytes at data using context ctx.
|
||||
Returns 1 for success and 0 for failure.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_md5_final(libssh2_md5_ctx ctx,
|
||||
unsigned char output[MD5_DIGEST_LENGTH]);
|
||||
Gets the computed MD5 signature from context ctx into the output buffer.
|
||||
Release the context.
|
||||
Note: if the ctx parameter is modified by the underlying code,
|
||||
this procedure must be implemented as a macro to map ctx --> &ctx.
|
||||
Must return 1 for success and 0 for failure.
|
||||
|
||||
int libssh2_hmac_md5_init(libssh2_hmac_ctx *ctx,
|
||||
const void *key,
|
||||
int keylen);
|
||||
Setup the HMAC computation context ctx for an HMAC-MD5 computation using the
|
||||
keylen-byte key. Is invoked just after libssh2_hmac_ctx_init().
|
||||
Returns 1 for success and 0 for failure.
|
||||
|
||||
3.6) RIPEMD-160
|
||||
LIBSSH2_HMAC_RIPEMD
|
||||
#define as 1 if the crypto library supports HMAC-RIPEMD-160, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
int libssh2_hmac_ripemd160_init(libssh2_hmac_ctx *ctx,
|
||||
const void *key,
|
||||
int keylen);
|
||||
Setup the HMAC computation context ctx for an HMAC-RIPEMD-160 computation using
|
||||
the keylen-byte key. Is invoked just after libssh2_hmac_ctx_init().
|
||||
Returns 1 for success and 0 for failure.
|
||||
|
||||
|
||||
4) Bidirectional key ciphers.
|
||||
|
||||
_libssh2_cipher_ctx
|
||||
Type of a cipher computation context.
|
||||
|
||||
_libssh2_cipher_type(name);
|
||||
Macro defining name as storage identifying a cipher algorithm for
|
||||
the crypto library interface. No trailing semicolon.
|
||||
|
||||
int _libssh2_cipher_init(_libssh2_cipher_ctx *h,
|
||||
_libssh2_cipher_type(algo),
|
||||
unsigned char *iv,
|
||||
unsigned char *secret,
|
||||
int encrypt);
|
||||
Creates a cipher context for the given algorithm with the initialization vector
|
||||
iv and the secret key secret. Prepare for encryption or decryption depending on
|
||||
encrypt.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_cipher_crypt(_libssh2_cipher_ctx *ctx,
|
||||
_libssh2_cipher_type(algo),
|
||||
int encrypt,
|
||||
unsigned char *block,
|
||||
size_t blocksize,
|
||||
int firstlast);
|
||||
Encrypt or decrypt in-place data at (block, blocksize) using the given
|
||||
context and/or algorithm.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
void _libssh2_cipher_dtor(_libssh2_cipher_ctx *ctx);
|
||||
Release cipher context at ctx.
|
||||
|
||||
4.1) AES
|
||||
4.1.1) AES in CBC block mode.
|
||||
LIBSSH2_AES
|
||||
#define as 1 if the crypto library supports AES in CBC mode, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_aes128
|
||||
AES-128-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
_libssh2_cipher_aes192
|
||||
AES-192-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
_libssh2_cipher_aes256
|
||||
AES-256-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
4.1.2) AES in CTR block mode.
|
||||
LIBSSH2_AES_CTR
|
||||
#define as 1 if the crypto library supports AES in CTR mode, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_aes128ctr
|
||||
AES-128-CTR algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
_libssh2_cipher_aes192ctr
|
||||
AES-192-CTR algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
_libssh2_cipher_aes256ctr
|
||||
AES-256-CTR algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
4.2) Blowfish in CBC block mode.
|
||||
LIBSSH2_BLOWFISH
|
||||
#define as 1 if the crypto library supports blowfish in CBC mode, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_blowfish
|
||||
Blowfish-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
4.3) RC4.
|
||||
LIBSSH2_RC4
|
||||
#define as 1 if the crypto library supports RC4 (arcfour), else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_arcfour
|
||||
RC4 algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
4.4) CAST5 in CBC block mode.
|
||||
LIBSSH2_CAST
|
||||
#define 1 if the crypto library supports cast, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_cast5
|
||||
CAST5-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
4.5) Triple DES in CBC block mode.
|
||||
LIBSSH2_3DES
|
||||
#define as 1 if the crypto library supports TripleDES in CBC mode, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
_libssh2_cipher_3des
|
||||
TripleDES-CBC algorithm identifier initializer.
|
||||
#define with constant value of type _libssh2_cipher_type().
|
||||
|
||||
|
||||
5) Diffie-Hellman support.
|
||||
|
||||
LIBSSH2_DH_GEX_MINGROUP
|
||||
The minimum Diffie-Hellman group length in bits supported by the backend.
|
||||
Usually defined as 2048.
|
||||
|
||||
LIBSSH2_DH_GEX_OPTGROUP
|
||||
The preferred Diffie-Hellman group length in bits. Usually defined as 4096.
|
||||
|
||||
LIBSSH2_DH_GEX_MAXGROUP
|
||||
The maximum Diffie-Hellman group length in bits supported by the backend.
|
||||
Usually defined as 8192.
|
||||
|
||||
LIBSSH2_DH_MAX_MODULUS_BITS
|
||||
The maximum Diffie-Hellman modulus bit count accepted from the server. This
|
||||
value must be supported by the backend. Usually 16384.
|
||||
|
||||
5.1) Diffie-Hellman context.
|
||||
_libssh2_dh_ctx
|
||||
Type of a Diffie-Hellman computation context.
|
||||
Must always be defined.
|
||||
|
||||
5.2) Diffie-Hellman computation procedures.
|
||||
void libssh2_dh_init(_libssh2_dh_ctx *dhctx);
|
||||
Initializes the Diffie-Hellman context at `dhctx'. No effective context
|
||||
creation needed here.
|
||||
|
||||
int libssh2_dh_key_pair(_libssh2_dh_ctx *dhctx, _libssh2_bn *public,
|
||||
_libssh2_bn *g, _libssh2_bn *p, int group_order,
|
||||
_libssh2_bn_ctx *bnctx);
|
||||
Generates a Diffie-Hellman key pair using base `g', prime `p' and the given
|
||||
`group_order'. Can use the given big number context `bnctx' if needed.
|
||||
The private key is stored as opaque in the Diffie-Hellman context `*dhctx' and
|
||||
the public key is returned in `public'.
|
||||
0 is returned upon success, else -1.
|
||||
|
||||
int libssh2_dh_secret(_libssh2_dh_ctx *dhctx, _libssh2_bn *secret,
|
||||
_libssh2_bn *f, _libssh2_bn *p, _libssh2_bn_ctx * bnctx)
|
||||
Computes the Diffie-Hellman secret from the previously created context `*dhctx',
|
||||
the public key `f' from the other party and the same prime `p' used at
|
||||
context creation. The result is stored in `secret'.
|
||||
0 is returned upon success, else -1.
|
||||
|
||||
void libssh2_dh_dtor(_libssh2_dh_ctx *dhctx)
|
||||
Destroys Diffie-Hellman context at `dhctx' and resets its storage.
|
||||
|
||||
|
||||
6) Big numbers.
|
||||
Positive multi-byte integers support is sufficient.
|
||||
|
||||
6.1) Computation contexts.
|
||||
This has a real meaning if the big numbers computations need some context
|
||||
storage. If not, use a dummy type and functions (macros).
|
||||
|
||||
_libssh2_bn_ctx
|
||||
Type of multiple precision computation context. May not be empty. if not used,
|
||||
#define as char, for example.
|
||||
|
||||
_libssh2_bn_ctx _libssh2_bn_ctx_new(void);
|
||||
Returns a new multiple precision computation context.
|
||||
|
||||
void _libssh2_bn_ctx_free(_libssh2_bn_ctx ctx);
|
||||
Releases a multiple precision computation context.
|
||||
|
||||
6.2) Computation support.
|
||||
_libssh2_bn
|
||||
Type of multiple precision numbers (aka bignumbers or huge integers) for the
|
||||
crypto library.
|
||||
|
||||
_libssh2_bn * _libssh2_bn_init(void);
|
||||
Creates a multiple precision number (preset to zero).
|
||||
|
||||
_libssh2_bn * _libssh2_bn_init_from_bin(void);
|
||||
Create a multiple precision number intended to be set by the
|
||||
_libssh2_bn_from_bin() function (see below). Unlike _libssh2_bn_init(), this
|
||||
code may be a dummy initializer if the _libssh2_bn_from_bin() actually
|
||||
allocates the number. Returns a value of type _libssh2_bn *.
|
||||
|
||||
void _libssh2_bn_free(_libssh2_bn *bn);
|
||||
Destroys the multiple precision number at bn.
|
||||
|
||||
unsigned long _libssh2_bn_bytes(_libssh2_bn *bn);
|
||||
Get the number of bytes needed to store the bits of the multiple precision
|
||||
number at bn.
|
||||
|
||||
unsigned long _libssh2_bn_bits(_libssh2_bn *bn);
|
||||
Returns the number of bits of multiple precision number at bn.
|
||||
|
||||
int _libssh2_bn_set_word(_libssh2_bn *bn, unsigned long val);
|
||||
Sets the value of bn to val.
|
||||
Returns 1 on success, 0 otherwise.
|
||||
|
||||
_libssh2_bn * _libssh2_bn_from_bin(_libssh2_bn *bn, int len,
|
||||
const unsigned char *val);
|
||||
Converts the positive integer in big-endian form of length len at val
|
||||
into a _libssh2_bn and place it in bn. If bn is NULL, a new _libssh2_bn is
|
||||
created.
|
||||
Returns a pointer to target _libssh2_bn or NULL if error.
|
||||
|
||||
int _libssh2_bn_to_bin(_libssh2_bn *bn, unsigned char *val);
|
||||
Converts the absolute value of bn into big-endian form and store it at
|
||||
val. val must point to _libssh2_bn_bytes(bn) bytes of memory.
|
||||
Returns the length of the big-endian number.
|
||||
|
||||
|
||||
7) Private key algorithms.
|
||||
Format of an RSA public key:
|
||||
a) "ssh-rsa".
|
||||
b) RSA exponent, MSB first, with high order bit = 0.
|
||||
c) RSA modulus, MSB first, with high order bit = 0.
|
||||
Each item is preceded by its 32-bit byte length, MSB first.
|
||||
|
||||
Format of a DSA public key:
|
||||
a) "ssh-dss".
|
||||
b) p, MSB first, with high order bit = 0.
|
||||
c) q, MSB first, with high order bit = 0.
|
||||
d) g, MSB first, with high order bit = 0.
|
||||
e) pub_key, MSB first, with high order bit = 0.
|
||||
Each item is preceded by its 32-bit byte length, MSB first.
|
||||
|
||||
Format of an ECDSA public key:
|
||||
a) "ecdsa-sha2-nistp256" or "ecdsa-sha2-nistp384" or "ecdsa-sha2-nistp521".
|
||||
b) domain: "nistp256", "nistp384" or "nistp521" matching a).
|
||||
c) raw public key ("octal").
|
||||
Each item is preceded by its 32-bit byte length, MSB first.
|
||||
|
||||
Format of an ED25519 public key:
|
||||
a) "ssh-ed25519".
|
||||
b) raw key (32 bytes).
|
||||
Each item is preceded by its 32-bit byte length, MSB first.
|
||||
|
||||
int _libssh2_pub_priv_keyfile(LIBSSH2_SESSION *session,
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekey,
|
||||
const char *passphrase);
|
||||
Reads a private key from file privatekey and extract the public key -->
|
||||
(pubkeydata, pubkeydata_len). Store the associated method (ssh-rsa or ssh-dss)
|
||||
into (method, method_len).
|
||||
Both buffers have to be allocated using LIBSSH2_ALLOC().
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_pub_priv_keyfilememory(LIBSSH2_SESSION *session,
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekeydata,
|
||||
size_t privatekeydata_len,
|
||||
const char *passphrase);
|
||||
Gets a private key from bytes at (privatekeydata, privatekeydata_len) and
|
||||
extract the public key --> (pubkeydata, pubkeydata_len). Store the associated
|
||||
method (ssh-rsa or ssh-dss) into (method, method_len).
|
||||
Both buffers have to be allocated using LIBSSH2_ALLOC().
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
|
||||
7.1) RSA
|
||||
LIBSSH2_RSA
|
||||
#define as 1 if the crypto library supports RSA, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
libssh2_rsa_ctx
|
||||
Type of an RSA computation context. Generally a struct.
|
||||
|
||||
int _libssh2_rsa_new(libssh2_rsa_ctx **rsa,
|
||||
const unsigned char *edata,
|
||||
unsigned long elen,
|
||||
const unsigned char *ndata,
|
||||
unsigned long nlen,
|
||||
const unsigned char *ddata,
|
||||
unsigned long dlen,
|
||||
const unsigned char *pdata,
|
||||
unsigned long plen,
|
||||
const unsigned char *qdata,
|
||||
unsigned long qlen,
|
||||
const unsigned char *e1data,
|
||||
unsigned long e1len,
|
||||
const unsigned char *e2data,
|
||||
unsigned long e2len,
|
||||
const unsigned char *coeffdata, unsigned long coefflen);
|
||||
Creates a new context for RSA computations from key source values:
|
||||
pdata, plen Prime number p. Only used if private key known (ddata).
|
||||
qdata, qlen Prime number q. Only used if private key known (ddata).
|
||||
ndata, nlen Modulus n.
|
||||
edata, elen Exponent e.
|
||||
ddata, dlen e^-1 % phi(n) = private key. May be NULL if unknown.
|
||||
e1data, e1len dp = d % (p-1). Only used if private key known (dtata).
|
||||
e2data, e2len dq = d % (q-1). Only used if private key known (dtata).
|
||||
coeffdata, coefflen q^-1 % p. Only used if private key known.
|
||||
Returns 0 if OK.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
Note: the current generic code only calls this function with e and n (public
|
||||
key parameters): unless used internally by the backend, it is not needed to
|
||||
support the private key and the other parameters here.
|
||||
|
||||
int _libssh2_rsa_new_private(libssh2_rsa_ctx **rsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
unsigned const char *passphrase);
|
||||
Reads an RSA private key from file filename into a new RSA context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_rsa_new_private_frommemory(libssh2_rsa_ctx **rsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *data,
|
||||
size_t data_len,
|
||||
unsigned const char *passphrase);
|
||||
Gets an RSA private key from data into a new RSA context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_rsa_sha1_verify(libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *sig,
|
||||
size_t sig_len,
|
||||
const unsigned char *m, size_t m_len);
|
||||
Verify (sig, sig_len) signature of (m, m_len) using an SHA-1 hash and the
|
||||
RSA context.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_rsa_sha1_signv(LIBSSH2_SESSION *session,
|
||||
unsigned char **sig, size_t *siglen,
|
||||
int count, const struct iovec vector[],
|
||||
libssh2_rsa_ctx *ctx);
|
||||
RSA signs the SHA-1 hash computed over the count data chunks in vector.
|
||||
Signature is stored at (sig, siglen).
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
Note: this procedure is optional: if provided, it MUST be defined as a macro.
|
||||
|
||||
int _libssh2_rsa_sha1_sign(LIBSSH2_SESSION *session,
|
||||
libssh2_rsa_ctx *rsactx,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
RSA signs the (hash, hashlen) SHA-1 hash bytes and stores the allocated
|
||||
signature at (signature, signature_len).
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
Note: this procedure is not used if macro _libssh2_rsa_sha1_signv() is defined.
|
||||
|
||||
void _libssh2_rsa_free(libssh2_rsa_ctx *rsactx);
|
||||
Releases the RSA computation context at rsactx.
|
||||
|
||||
LIBSSH2_RSA_SHA2
|
||||
#define as 1 if the crypto library supports RSA SHA2 256/512, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
int _libssh2_rsa_sha2_sign(LIBSSH2_SESSION * session,
|
||||
libssh2_rsa_ctx * rsactx,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
RSA signs the (hash, hashlen) SHA-2 hash bytes based on hash length and stores
|
||||
the allocated signature at (signature, signature_len).
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
Note: this procedure is not used if both macros _libssh2_rsa_sha2_256_signv()
|
||||
and _libssh2_rsa_sha2_512_signv are defined.
|
||||
|
||||
int _libssh2_rsa_sha2_256_signv(LIBSSH2_SESSION *session,
|
||||
unsigned char **sig, size_t *siglen,
|
||||
int count, const struct iovec vector[],
|
||||
libssh2_rsa_ctx *ctx);
|
||||
RSA signs the SHA-256 hash computed over the count data chunks in vector.
|
||||
Signature is stored at (sig, siglen).
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
Note: this procedure is optional: if provided, it MUST be defined as a macro.
|
||||
|
||||
int _libssh2_rsa_sha2_512_signv(LIBSSH2_SESSION *session,
|
||||
unsigned char **sig, size_t *siglen,
|
||||
int count, const struct iovec vector[],
|
||||
libssh2_rsa_ctx *ctx);
|
||||
RSA signs the SHA-512 hash computed over the count data chunks in vector.
|
||||
Signature is stored at (sig, siglen).
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
Note: this procedure is optional: if provided, it MUST be defined as a macro.
|
||||
|
||||
int _libssh2_rsa_sha2_verify(libssh2_rsa_ctx * rsa,
|
||||
size_t hash_len,
|
||||
const unsigned char *sig,
|
||||
size_t sig_len,
|
||||
const unsigned char *m, size_t m_len);
|
||||
Verify (sig, sig_len) signature of (m, m_len) using an SHA-2 hash based on
|
||||
hash length and the RSA context.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
7.2) DSA
|
||||
LIBSSH2_DSA
|
||||
#define as 1 if the crypto library supports DSA, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
|
||||
libssh2_dsa_ctx
|
||||
Type of a DSA computation context. Generally a struct.
|
||||
|
||||
int _libssh2_dsa_new(libssh2_dsa_ctx **dsa,
|
||||
const unsigned char *pdata,
|
||||
unsigned long plen,
|
||||
const unsigned char *qdata,
|
||||
unsigned long qlen,
|
||||
const unsigned char *gdata,
|
||||
unsigned long glen,
|
||||
const unsigned char *ydata,
|
||||
unsigned long ylen,
|
||||
const unsigned char *x, unsigned long x_len);
|
||||
Creates a new context for DSA computations from source key values:
|
||||
pdata, plen Prime number p. Only used if private key known (ddata).
|
||||
qdata, qlen Prime number q. Only used if private key known (ddata).
|
||||
gdata, glen G number.
|
||||
ydata, ylen Public key.
|
||||
xdata, xlen Private key. Only taken if xlen non-zero.
|
||||
Returns 0 if OK.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_dsa_new_private(libssh2_dsa_ctx **dsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
unsigned const char *passphrase);
|
||||
Gets a DSA private key from file filename into a new DSA context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_dsa_new_private_frommemory(libssh2_dsa_ctx **dsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *data,
|
||||
size_t data_len,
|
||||
unsigned const char *passphrase);
|
||||
Gets a DSA private key from the data_len-bytes data into a new DSA context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_dsa_sha1_verify(libssh2_dsa_ctx *dsactx,
|
||||
const unsigned char *sig,
|
||||
const unsigned char *m, size_t m_len);
|
||||
Verify (sig, siglen) signature of (m, m_len) using an SHA-1 hash and the
|
||||
DSA context.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_dsa_sha1_sign(libssh2_dsa_ctx *dsactx,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len, unsigned char *sig);
|
||||
DSA signs the (hash, hash_len) data using SHA-1 and store the signature at sig.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
void _libssh2_dsa_free(libssh2_dsa_ctx *dsactx);
|
||||
Releases the DSA computation context at dsactx.
|
||||
|
||||
|
||||
7.3) ECDSA
|
||||
LIBSSH2_ECDSA
|
||||
#define as 1 if the crypto library supports ECDSA, else 0.
|
||||
If defined as 0, _libssh2_ec_key should be defined as void and the rest of
|
||||
this section can be omitted.
|
||||
|
||||
EC_MAX_POINT_LEN
|
||||
Maximum point length. Usually defined as ((528 * 2 / 8) + 1) (= 133).
|
||||
|
||||
libssh2_ecdsa_ctx
|
||||
Type of an ECDSA computation context. Generally a struct.
|
||||
|
||||
_libssh2_ec_key
|
||||
Type of an elliptic curve key.
|
||||
|
||||
libssh2_curve_type
|
||||
An enum type defining curve types. Current supported identifiers are:
|
||||
LIBSSH2_EC_CURVE_NISTP256
|
||||
LIBSSH2_EC_CURVE_NISTP384
|
||||
LIBSSH2_EC_CURVE_NISTP521
|
||||
|
||||
int _libssh2_ecdsa_create_key(_libssh2_ec_key **out_private_key,
|
||||
unsigned char **out_public_key_octal,
|
||||
size_t *out_public_key_octal_len,
|
||||
libssh2_curve_type curve_type);
|
||||
Create a new ECDSA private key of type curve_type and return it at
|
||||
out_private_key. If out_public_key_octal is not NULL, store an allocated
|
||||
pointer to the associated public key in "octal" form in it and its length
|
||||
at out_public_key_octal_len.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_new_private(libssh2_ecdsa_ctx **ec_ctx,
|
||||
LIBSSH2_SESSION * session,
|
||||
const char *filename,
|
||||
unsigned const char *passphrase);
|
||||
Reads an ECDSA private key from PEM file filename into a new ECDSA context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_new_private_frommemory(libssh2_ecdsa_ctx ** ec_ctx,
|
||||
LIBSSH2_SESSION * session,
|
||||
const char *filedata,
|
||||
size_t filedata_len,
|
||||
unsigned const char *passphrase);
|
||||
Builds an ECDSA private key from PEM data at filedata of length filedata_len
|
||||
into a new ECDSA context stored at ec_ctx.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_curve_name_with_octal_new(libssh2_ecdsa_ctx **ecdsactx,
|
||||
const unsigned char *k,
|
||||
size_t k_len,
|
||||
libssh2_curve_type type);
|
||||
Stores at ecdsactx a new ECDSA context associated with the given curve type
|
||||
and with "octal" form public key (k, k_len).
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_new_openssh_private(libssh2_ecdsa_ctx **ec_ctx,
|
||||
LIBSSH2_SESSION * session,
|
||||
const char *filename,
|
||||
unsigned const char *passphrase);
|
||||
Reads a PEM-encoded ECDSA private key from file filename encrypted with
|
||||
passphrase and stores at ec_ctx a new ECDSA context for it.
|
||||
Return 0 if OK, else -1.
|
||||
Currently used only from openssl backend (ought to be private).
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_sign(LIBSSH2_SESSION *session, libssh2_ecdsa_ctx *ec_ctx,
|
||||
const unsigned char *hash, unsigned long hash_len,
|
||||
unsigned char **signature, size_t *signature_len);
|
||||
ECDSA signs the (hash, hashlen) hash bytes and stores the allocated
|
||||
signature at (signature, signature_len). Hash algorithm used should be
|
||||
SHA-256, SHA-384 or SHA-512 depending on type stored in ECDSA context at ec_ctx.
|
||||
Signature buffer must be allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_verify(libssh2_ecdsa_ctx *ctx,
|
||||
const unsigned char *r, size_t r_len,
|
||||
const unsigned char *s, size_t s_len,
|
||||
const unsigned char *m, size_t m_len);
|
||||
Verify the ECDSA signature made of (r, r_len) and (s, s_len) of (m, m_len)
|
||||
using the hash algorithm configured in the ECDSA context ctx.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
libssh2_curve_type _libssh2_ecdsa_get_curve_type(libssh2_ecdsa_ctx *ecdsactx);
|
||||
Returns the curve type associated with given context.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ecdsa_curve_type_from_name(const char *name,
|
||||
libssh2_curve_type *out_type);
|
||||
Stores in out_type the curve type matching string name of the form
|
||||
"ecdsa-sha2-nistpxxx".
|
||||
Return 0 if OK, else -1.
|
||||
Currently used only from openssl backend (ought to be private).
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
void _libssh2_ecdsa_free(libssh2_ecdsa_ctx *ecdsactx);
|
||||
Releases the ECDSA computation context at ecdsactx.
|
||||
|
||||
|
||||
7.4) ED25519
|
||||
LIBSSH2_ED25519
|
||||
#define as 1 if the crypto library supports ED25519, else 0.
|
||||
If defined as 0, the rest of this section can be omitted.
|
||||
|
||||
|
||||
libssh2_ed25519_ctx
|
||||
Type of an ED25519 computation context. Generally a struct.
|
||||
|
||||
int _libssh2_curve25519_new(LIBSSH2_SESSION *session, libssh2_ed25519_ctx **ctx,
|
||||
uint8_t **out_public_key,
|
||||
uint8_t **out_private_key);
|
||||
Generates an ED25519 key pair, stores a pointer to them at out_private_key
|
||||
and out_public_key respectively and stores at ctx a new ED25519 context for
|
||||
this key.
|
||||
Argument ctx, out_private_key and out_public key may be NULL to disable storing
|
||||
the corresponding value.
|
||||
Length of each key is LIBSSH2_ED25519_KEY_LEN (32 bytes).
|
||||
Key buffers are allocated and should be released by caller after use.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ed25519_new_private(libssh2_ed25519_ctx **ed_ctx,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
const uint8_t *passphrase);
|
||||
Reads an ED25519 private key from PEM file filename into a new ED25519 context.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ed25519_new_public(libssh2_ed25519_ctx **ed_ctx,
|
||||
LIBSSH2_SESSION *session,
|
||||
const unsigned char *raw_pub_key,
|
||||
const size_t key_len);
|
||||
Stores at ed_ctx a new ED25519 key context for raw public key (raw_pub_key,
|
||||
key_len).
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ed25519_new_private_frommemory(libssh2_ed25519_ctx **ed_ctx,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filedata,
|
||||
size_t filedata_len,
|
||||
unsigned const char *passphrase);
|
||||
Builds an ED25519 private key from PEM data at filedata of length filedata_len
|
||||
into a new ED25519 context stored at ed_ctx.
|
||||
Must call _libssh2_init_if_needed().
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ed25519_sign(libssh2_ed25519_ctx *ctx, LIBSSH2_SESSION *session,
|
||||
uint8_t **out_sig, size_t *out_sig_len,
|
||||
const uint8_t *message, size_t message_len);
|
||||
ED25519 signs the (message, message_len) bytes and stores the allocated
|
||||
signature at (sig, sig_len).
|
||||
Signature buffer is allocated from the given session.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_ed25519_verify(libssh2_ed25519_ctx *ctx, const uint8_t *s,
|
||||
size_t s_len, const uint8_t *m, size_t m_len);
|
||||
Verify (s, s_len) signature of (m, m_len) using the given ED25519 context.
|
||||
Return 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
int _libssh2_curve25519_gen_k(_libssh2_bn **k,
|
||||
uint8_t private_key[LIBSSH2_ED25519_KEY_LEN],
|
||||
uint8_t srvr_public_key[LIBSSH2_ED25519_KEY_LEN]);
|
||||
Computes a shared ED25519 secret key from the given raw server public key and
|
||||
raw client public key and stores it as a big number in *k. Big number should
|
||||
have been initialized before calling this function.
|
||||
Returns 0 if OK, else -1.
|
||||
This procedure is already prototyped in crypto.h.
|
||||
|
||||
void _libssh2_ed25519_free(libssh2_ed25519_ctx *ed25519ctx);
|
||||
Releases the ED25519 computation context at ed25519ctx.
|
||||
|
||||
|
||||
8) Miscellaneous
|
||||
|
||||
void libssh2_prepare_iovec(struct iovec *vector, unsigned int len);
|
||||
Prepare len consecutive iovec slots before using them.
|
||||
In example, this is needed to preset unused structure slacks on platforms
|
||||
requiring it.
|
||||
If this is not needed, it should be defined as an empty macro.
|
||||
|
||||
int _libssh2_random(unsigned char *buf, size_t len);
|
||||
Store len random bytes at buf.
|
||||
Returns 0 if OK, else -1.
|
||||
|
||||
const char * _libssh2_supported_key_sign_algorithms(LIBSSH2_SESSION *session,
|
||||
unsigned char *key_method,
|
||||
size_t key_method_len);
|
||||
|
||||
This function is for implementing key hash upgrading as defined in RFC 8332.
|
||||
|
||||
Based on the incoming key_method value, this function will return a
|
||||
list of supported algorithms that can upgrade the original key method algorithm
|
||||
as a comma separated list, if there is no upgrade option this function should
|
||||
return NULL.
|
||||
316
curl/dep/libssh2/docs/INSTALL_AUTOTOOLS.txt
Обычный файл
316
curl/dep/libssh2/docs/INSTALL_AUTOTOOLS.txt
Обычный файл
@@ -0,0 +1,316 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
SPDX-License-Identifier: FSFULLR
|
||||
|
||||
When Building directly from Master
|
||||
==================================
|
||||
|
||||
If you want to build directly from the git repository, you must first
|
||||
generate the configure script and Makefile using autotools. Make
|
||||
sure that autoconf, automake and libtool are installed on your system,
|
||||
then execute:
|
||||
|
||||
autoreconf -fi
|
||||
|
||||
After executing this script, you can build the project as usual:
|
||||
|
||||
./configure
|
||||
make
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or shortly `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you do not want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you are
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that the
|
||||
`configure' script does not know about. Run `./configure --help' for
|
||||
details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it does not,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out automatically,
|
||||
but needs to determine by the type of machine the package will run on.
|
||||
Usually, assuming the package is built to be run on the _same_
|
||||
architectures, `configure' can figure that out, but if it prints a
|
||||
message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' is not included in this package, then this package does not
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share, you
|
||||
can create a site shell script called `config.site' that gives default
|
||||
values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script). Here is a another example:
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
More configure options
|
||||
======================
|
||||
|
||||
Some ./configure options deserve additional comments:
|
||||
|
||||
* --with-libgcrypt
|
||||
* --without-libgcrypt
|
||||
* --with-libgcrypt-prefix=DIR
|
||||
|
||||
libssh2 can use the Libgcrypt library
|
||||
(https://www.gnupg.org/) for cryptographic operations.
|
||||
One of the cryptographic libraries is required.
|
||||
|
||||
Configure will attempt to locate Libgcrypt
|
||||
automatically.
|
||||
|
||||
If your installation of Libgcrypt is in another
|
||||
location, specify it using --with-libgcrypt-prefix.
|
||||
|
||||
* --with-openssl
|
||||
* --without-openssl
|
||||
* --with-libssl-prefix=[DIR]
|
||||
|
||||
libssh2 can use the OpenSSL library
|
||||
(https://www.openssl-library.org/) for cryptographic operations.
|
||||
One of the cryptographic libraries is required.
|
||||
|
||||
Configure will attempt to locate OpenSSL in the
|
||||
default location.
|
||||
|
||||
If your installation of OpenSSL is in another
|
||||
location, specify it using --with-libssl-prefix.
|
||||
|
||||
* --with-mbedtls
|
||||
* --without-mbedtls
|
||||
* --with-libmbedcrypto-prefix=[DIR]
|
||||
|
||||
libssh2 can use the mbedTLS library
|
||||
(https://tls.mbed.org) for cryptographic operations.
|
||||
One of the cryptographic libraries is required.
|
||||
|
||||
Configure will attempt to locate mbedTLS in the
|
||||
default location.
|
||||
|
||||
If your installation of mbedTLS is in another
|
||||
location, specify it using --with-libmbedcrypto-prefix.
|
||||
|
||||
* --with-libz
|
||||
* --without-libz
|
||||
* --with-libz-prefix=[DIR]
|
||||
|
||||
If present, libssh2 will attempt to use the zlib
|
||||
(https://zlib.net/) for payload compression, however
|
||||
zlib is not required.
|
||||
|
||||
If your installation of Libz is in another location,
|
||||
specify it using --with-libz-prefix.
|
||||
|
||||
* --enable-debug
|
||||
|
||||
Will make the build use more pedantic and strict compiler
|
||||
options as well as enable the libssh2_trace() function (for
|
||||
showing debug traces).
|
||||
180
curl/dep/libssh2/docs/TODO.txt
Обычный файл
180
curl/dep/libssh2/docs/TODO.txt
Обычный файл
@@ -0,0 +1,180 @@
|
||||
Things TODO
|
||||
===========
|
||||
|
||||
* Fix -Wsign-conversion warnings in src
|
||||
|
||||
* Fix the numerous malloc+copy operations for sending data, see "Buffering
|
||||
Improvements" below for details
|
||||
|
||||
* make sure the windowing code adapts better to slow situations so that it
|
||||
does not then use as much memory as today. Possibly by an app-controllable
|
||||
"Window mode"?
|
||||
|
||||
* Decrease the number of mallocs. Everywhere. Will get easier once the
|
||||
buffering improvements have been done.
|
||||
|
||||
* Use SO_NOSIGPIPE for Mac OS/BSD systems where MSG_NOSIGNAL does not
|
||||
exist/work
|
||||
|
||||
* Extend the test suite to actually test lots of aspects of libssh2
|
||||
|
||||
* Update public API to drop casts added to fix compiler warnings
|
||||
|
||||
* Expose error messages sent by the server
|
||||
|
||||
* select() is troublesome with libssh2 when using multiple channels over
|
||||
the same session. See "New Transport API" below for more details.
|
||||
|
||||
* for obsolete/weak/insecure algorithms: either stop enabling them by default
|
||||
at build-time, or delete support for them completely.
|
||||
|
||||
At next SONAME bump
|
||||
===================
|
||||
|
||||
* stop using #defined macros as part of the official API. The macros should
|
||||
either be turned into real functions or discarded from the API.
|
||||
|
||||
* delete or deprecate libssh2_session_callback_set()
|
||||
|
||||
* bump length arguments in callback functions to size_t/ssize_t
|
||||
|
||||
* remove the following functions from the API/ABI
|
||||
|
||||
libssh2_base64_decode()
|
||||
libssh2_session_flag()
|
||||
libssh2_channel_handle_extended_data()
|
||||
libssh2_channel_receive_window_adjust()
|
||||
libssh2_poll()
|
||||
libssh2_poll_channel_read()
|
||||
libssh2_session_startup() (libssh2_session_handshake() is the replacement)
|
||||
libssh2_banner_set() (libssh2_session_banner_set() is the replacement)
|
||||
|
||||
* Rename a few function:
|
||||
|
||||
libssh2_hostkey_hash => libssh2_session_hostkey_hash
|
||||
libssh2_banner_set => libssh2_session_banner_set
|
||||
|
||||
* change 'int' to 'libssh2_socket_t' in the public API for sockets.
|
||||
|
||||
* Use 'size_t' for string lengths in all functions.
|
||||
|
||||
* Add a comment field to struct libssh2_knownhost.
|
||||
|
||||
* remove the existing libssh2_knownhost_add() function and rename
|
||||
libssh2_knownhost_addc to become the new libssh2_knownhost_add instead
|
||||
|
||||
* remove the existing libssh2_scp_send_ex() function and rename
|
||||
libssh2_scp_send64 to become the new libssh2_scp_send instead.
|
||||
|
||||
* remove the existing libssh2_knownhost_check() function and rename
|
||||
libssh2_knownhost_checkp() to become the new libssh2_knownhost_check instead
|
||||
|
||||
Buffering Improvements
|
||||
======================
|
||||
|
||||
transport_write
|
||||
|
||||
- If this function gets called with a total packet size that is larger than
|
||||
32K, it should create more than one SSH packet so that it keeps the largest
|
||||
one below 32K
|
||||
|
||||
sftp_write
|
||||
|
||||
- should not copy/allocate anything for the data, only create a header chunk
|
||||
and pass on the payload data to channel_write "pointed to"
|
||||
|
||||
New Transport API
|
||||
=================
|
||||
|
||||
THE PROBLEM
|
||||
|
||||
The problem in a nutshell is that when an application opens up multiple
|
||||
channels over a single session, those are all using the same socket. If the
|
||||
application is then using select() to wait for traffic (like any sensible app
|
||||
does) and wants to act on the data when select() tells there is something to
|
||||
for example read, what does an application do?
|
||||
|
||||
With our current API, you have to loop over all the channels and read from
|
||||
them to see if they have data. This effectively makes blocking reads
|
||||
impossible. If the app has many channels in a setup like this, it even becomes
|
||||
slow. (The original API had the libssh2_poll_channel_read() and libssh2_poll()
|
||||
to somewhat overcome this hurdle, but they too have pretty much the same
|
||||
problems plus a few others.)
|
||||
|
||||
Traffic in the other direction is similarly limited: the app has to try
|
||||
sending to all channels, even though some of them may very well not accept any
|
||||
data at that point.
|
||||
|
||||
A SOLUTION
|
||||
|
||||
I suggest we introduce two new helper functions:
|
||||
|
||||
libssh2_transport_read()
|
||||
|
||||
- Read "a bunch" of data from the given socket and returns information to the
|
||||
app about what channels that are now readable (ie they will not block when
|
||||
read from). The function can be called over and over and it will repeatedly
|
||||
return info about what channels that are readable at that moment.
|
||||
|
||||
libssh2_transport_write()
|
||||
|
||||
- Returns information about what channels that are writable, in the sense
|
||||
that they have windows set from the remote side that allows data to get
|
||||
sent. Writing to one of those channels will not block. Of course, the
|
||||
underlying socket may only accept a certain amount of data, so at the first
|
||||
short return, nothing more should be attempted to get sent until select()
|
||||
(or equivalent) has been used on the master socket again.
|
||||
|
||||
I have not yet figured out a sensible API for how these functions should return
|
||||
that info, but if we agree on the general principles I guess we can work that
|
||||
out.
|
||||
|
||||
VOLUNTARY
|
||||
|
||||
I wanted to mention that these two helper functions would not be mandatory
|
||||
in any way. They would just be there for those who want them, and existing
|
||||
programs can remain using the old functions only if they prefer to.
|
||||
|
||||
New SFTP API
|
||||
============
|
||||
|
||||
PURPOSE
|
||||
|
||||
Provide API functions that explicitly tells at once that a (full) SFTP file
|
||||
transfer is wanted, to allow libssh2 to leverage on that knowledge to speed
|
||||
up things internally. It can for example do read ahead, buffer writes (merge
|
||||
small writes into larger chunks), better tune the SSH window and more. This
|
||||
sort of API is already provided for SCP transfers.
|
||||
|
||||
API
|
||||
|
||||
New functions:
|
||||
|
||||
LIBSSH2_SFTP_HANDLE *libssh2_sftp_send(SFTP_SESSION *sftp,
|
||||
libssh2_uint64_t filesize,
|
||||
char *remote_path,
|
||||
size_t remote_path_len,
|
||||
long mode);
|
||||
|
||||
Tell libssh2 that a local file with a given size is about to get sent to
|
||||
the SFTP server.
|
||||
|
||||
LIBSSH2_SFTP_HANDLE *libssh2_sftp_recv();
|
||||
|
||||
Tell libssh2 that a remote file is requested to get downloaded from the SFTP
|
||||
server.
|
||||
|
||||
Only the setup of the file transfer is different from an application's point
|
||||
of view. Depending on direction of the transfer(s), the following already
|
||||
existing functions should then be used until the transfer is complete:
|
||||
|
||||
libssh2_sftp_read()
|
||||
libssh2_sftp_write()
|
||||
|
||||
HOW TO USE
|
||||
|
||||
1. Setup the transfer using one of the two new functions.
|
||||
|
||||
2. Loop through the reading or writing of data.
|
||||
|
||||
3. Cleanup the transfer
|
||||
168
curl/dep/nghttp2/AUTHORS.txt
Обычный файл
168
curl/dep/nghttp2/AUTHORS.txt
Обычный файл
@@ -0,0 +1,168 @@
|
||||
nghttp2 project was started as a fork of spdylay project [1]. Both
|
||||
projects were started by Tatsuhiro Tsujikawa, who is still the main
|
||||
author of these projects. Meanwhile, we have many contributions, and
|
||||
we are not here without them. We sincerely thank you to all who made
|
||||
a contribution. Here is the all individuals/organizations who
|
||||
contributed to nghttp2 and spdylay project at which we forked. These
|
||||
names are retrieved from git commit log. If you have made a
|
||||
contribution, but you are missing in the list, please let us know via
|
||||
github issues [2].
|
||||
|
||||
[1] https://github.com/tatsuhiro-t/spdylay
|
||||
[2] https://github.com/nghttp2/nghttp2/issues
|
||||
|
||||
--------
|
||||
|
||||
187j3x1
|
||||
Adam Gołębiowski
|
||||
Alek Storm
|
||||
Alex Nalivko
|
||||
Alexandr Vlasov
|
||||
Alexandros Konstantinakis-Karmis
|
||||
Alexis La Goutte
|
||||
Alyssa Ross
|
||||
Amir Livneh
|
||||
Amir Pakdel
|
||||
Anders Bakken
|
||||
Andreas Pohl
|
||||
Andrew Penkrat
|
||||
Andy Davies
|
||||
Angus Gratton
|
||||
Anna Henningsen
|
||||
Ant Bryan
|
||||
Anthony Alayo
|
||||
Asra Ali
|
||||
Benedikt Christoph Wolters
|
||||
Benjamin Peterson
|
||||
Bernard Spil
|
||||
Bernhard Walle
|
||||
Brendan Heinonen
|
||||
Brian Card
|
||||
Brian Suh
|
||||
Daniel Bevenius
|
||||
Daniel Evers
|
||||
Daniel Stenberg
|
||||
Dave Reisner
|
||||
David Beitey
|
||||
David Korczynski
|
||||
David Weekly
|
||||
Deel
|
||||
Deep Chordia
|
||||
Dimitris Apostolou
|
||||
Dmitri Tikhonov
|
||||
Dmitriy Vetutnev
|
||||
Don
|
||||
Dylan Plecki
|
||||
Etienne Cimon
|
||||
Fabian Möller
|
||||
Fabian Wiesel
|
||||
Fred Sundvik
|
||||
Gabi Davar
|
||||
Gaël PORTAY
|
||||
Geoff Hill
|
||||
George Liu
|
||||
Gitai
|
||||
Google Inc.
|
||||
Hajime Fujita
|
||||
Jacky Tian
|
||||
Jacky_Yin
|
||||
Jacob Champion
|
||||
James M Snell
|
||||
Jan Kundrát
|
||||
Jan-E
|
||||
Janusz Dziemidowicz
|
||||
Jay Satiro
|
||||
Jeff 'Raid' Baitis
|
||||
Jianqing Wang
|
||||
Jim Morrison
|
||||
Jiwoo Park
|
||||
Jonas Kvinge
|
||||
Josh Braegger
|
||||
José F. Calcerrada
|
||||
Kamil Dudka
|
||||
Kazuho Oku
|
||||
Kenny (kang-yen) Peng
|
||||
Kenny Peng
|
||||
Kit Chan
|
||||
Kyle Schomp
|
||||
LazyHamster
|
||||
Leo Neat
|
||||
Lorenz Nickel
|
||||
Lucas Pardue
|
||||
MATSUMOTO Ryosuke
|
||||
Marc Bachmann
|
||||
Marcelo Trylesinski
|
||||
Mark Boddington
|
||||
Matt Rudary
|
||||
Matt Way
|
||||
Michael Kaufmann
|
||||
Mike Conlen
|
||||
Mike Frysinger
|
||||
Mike Lothian
|
||||
Nicholas Hurley
|
||||
Nora Shoemaker
|
||||
Paweł Wegner
|
||||
Pedro Santos
|
||||
Peeyush Aggarwal
|
||||
Peter Wu
|
||||
Piotr Sikora
|
||||
PufferOverflow
|
||||
Raul Gutierrez Segales
|
||||
Remo E
|
||||
Renaud
|
||||
Reza Tavakoli
|
||||
Richard Wolfert
|
||||
Rick Lei
|
||||
Ross Smith II
|
||||
Rudi Heitbaum
|
||||
Ryan Carsten Schmidt
|
||||
Ryo Ota
|
||||
Scott Mitchell
|
||||
Sebastiaan Deckers
|
||||
Sergey Fedorov
|
||||
Shelley Vohr
|
||||
Simon Frankenberger
|
||||
Simone Basso
|
||||
Soham Sinha
|
||||
Stefan Eissing
|
||||
Stephen Ludin
|
||||
Sunpoet Po-Chuan Hsieh
|
||||
Svante Signell
|
||||
Syohei YOSHIDA
|
||||
Tapanito
|
||||
Tatsuhiko Kubo
|
||||
Tatsuhiro Tsujikawa
|
||||
Thomas Devoogdt
|
||||
Tobias Geerinckx-Rice
|
||||
Tom Harwood
|
||||
Tomas Krizek
|
||||
Tomasz Buchert
|
||||
Tomasz Torcz
|
||||
Vernon Tang
|
||||
Viacheslav Biriukov
|
||||
Viktor Szakats
|
||||
Viktor Szépe
|
||||
Ville Vesilehto
|
||||
Wenfeng Liu
|
||||
William A Rowe Jr
|
||||
Xiaoguang Sun
|
||||
Zhuoyun Wei
|
||||
acesso
|
||||
ayanamist
|
||||
bxshi
|
||||
clemahieu
|
||||
dalf
|
||||
dawg
|
||||
es
|
||||
fangdingjun
|
||||
hrxi
|
||||
jwchoi
|
||||
kumagi
|
||||
lhuang04
|
||||
lstefani
|
||||
makovich
|
||||
mod-h2-dev
|
||||
moparisthebest
|
||||
robaho
|
||||
snnn
|
||||
yuuki-kodama
|
||||
23
curl/dep/nghttp2/COPYING.txt
Обычный файл
23
curl/dep/nghttp2/COPYING.txt
Обычный файл
@@ -0,0 +1,23 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa
|
||||
Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
927
curl/dep/nghttp2/ChangeLog.txt
Обычный файл
927
curl/dep/nghttp2/ChangeLog.txt
Обычный файл
@@ -0,0 +1,927 @@
|
||||
commit 319bf015de8fa38e21ac271ce2f7d61aa77d90cb
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-03-02
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-03-02
|
||||
|
||||
Update bash_completion
|
||||
|
||||
commit 99c572448ac94f122a27cc088fe9cd8998222278
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-03-02
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-03-02
|
||||
|
||||
Update manual pages
|
||||
|
||||
commit a5007158dfdc76cd308e731c629d963406e25965
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-03-02
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-03-02
|
||||
|
||||
Bump package and library versions
|
||||
|
||||
commit 0b210f072d60db111d6abb44c98cfa754e4d9c99
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-03-02
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-03-02
|
||||
|
||||
Update AUTHORS
|
||||
|
||||
commit 5ca289471f681ed6c62a9f29e0cc4ea980506fdf
|
||||
Merge: 2141edda 1459db27
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-03-02
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-03-02
|
||||
|
||||
Merge pull request #2311 from nghttp2/bump-libbpf
|
||||
|
||||
Bump libbpf to v1.5.0
|
||||
|
||||
commit 2141edda0cbf8a85bd46c041cc4b421d505d0cd5
|
||||
Merge: 133cc56e d9793fce
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-03-01
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-03-01
|
||||
|
||||
Merge pull request #2312 from nghttp2/fix-coverity-check
|
||||
|
||||
Fix errors reported by coverity
|
||||
|
||||
commit d9793fceafdf44dbdea727dfb3e6d35023f46105
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-03-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-03-01
|
||||
|
||||
Fix errors reported by coverity
|
||||
|
||||
commit 1459db27fb5daf83d418729ab781d4cdd14c07ad
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-02-28
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-28
|
||||
|
||||
Bump libbpf to v1.5.0
|
||||
|
||||
commit 133cc56e70a31897088a75d38d24dfedf413060e
|
||||
Merge: ce5329a3 cd9a021a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-27
|
||||
|
||||
Merge pull request #2310 from nghttp2/bump-ngtcp2
|
||||
|
||||
Bump ngtcp2
|
||||
|
||||
commit cd9a021a19c7f6b83250be5dbb3ac01a12793a7f
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-02-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-27
|
||||
|
||||
Suppress warning when building C++ code with wolfSSL
|
||||
|
||||
commit 2e8124eadb41808b1de787131de1b6f58c83ed05
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-02-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-27
|
||||
|
||||
Bump ngtcp2 and its dependencies
|
||||
|
||||
commit ce5329a3109cda508f4d84e5c46a206d4d5ef3a6
|
||||
Merge: 6b74e009 1049ce0a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-18
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-18
|
||||
|
||||
Merge pull request #2309 from nghttp2/nghttpx-rework-quic-conn
|
||||
|
||||
nghttpx: Rework QUIC connection handling
|
||||
|
||||
commit 1049ce0a99b121f85768a3d1c3a3dd461fe6bd10
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-11
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-18
|
||||
|
||||
nghttpx: Rework QUIC connection handling
|
||||
|
||||
commit 6b74e0097ba30b1273843776a20395319f441987
|
||||
Merge: 321b71ae 785b0b54
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-18
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-18
|
||||
|
||||
Merge pull request #2308 from nghttp2/dependabot/go_modules/golang.org/x/net-0.35.0
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0
|
||||
|
||||
commit 785b0b541d4152e5e07e33a611fa85e2ddd3593a
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-17
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-17
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0
|
||||
|
||||
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.34.0 to 0.35.0.
|
||||
- [Commits](https://github.com/golang/net/compare/v0.34.0...v0.35.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: golang.org/x/net
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit 321b71aedb54eaab20456828f316212ec203c8fa
|
||||
Merge: e2e73723 1dbbcc35
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-08
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-08
|
||||
|
||||
Merge pull request #2306 from nghttp2/clang-format
|
||||
|
||||
clang-format
|
||||
|
||||
commit 1dbbcc35e1c5365d3ca94b6509ed7fe06d5b2444
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-02-08
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-08
|
||||
|
||||
clang-format
|
||||
|
||||
commit e2e737234e9d292d3cdbabd947c05e16b57ee19e
|
||||
Merge: e01c9f10 2b7ad6e6
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-05
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-05
|
||||
|
||||
Merge pull request #2305 from qnx-ports/master
|
||||
|
||||
Add QNX Support
|
||||
|
||||
commit 2b7ad6e6f376d47943347b2dc4b0b9ac2223870b
|
||||
Author: Deep Chordia <dchordia@blackberry.com>
|
||||
AuthorDate: 2025-02-05
|
||||
Commit: Deep Chordia <dchordia@blackberry.com>
|
||||
CommitDate: 2025-02-05
|
||||
|
||||
Add QNX Support
|
||||
|
||||
commit e01c9f10a3b7d1df1b50f7ff190dee474cc15d0b
|
||||
Merge: fd4505cf a2db898d
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-02-03
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-02-03
|
||||
|
||||
Merge pull request #2304 from nghttp2/cmake-src-tests
|
||||
|
||||
cmake: Disable src tests if BUILD_TESTING is OFF
|
||||
|
||||
commit a2db898d7094899c3dc8cb0b32ac1cf35ee362c8
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-02-03
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-02-03
|
||||
|
||||
cmake: Disable src tests if BUILD_TESTING is OFF
|
||||
|
||||
commit fd4505cfb21710ee9ca54a128001184472a9ab46
|
||||
Merge: d037dc32 9c23c72d
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-29
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-29
|
||||
|
||||
Merge pull request #2302 from nghttp2/min-quic-pktlen
|
||||
|
||||
The minimum length of a valid QUIC packet is 21
|
||||
|
||||
commit 9c23c72d9997465205b62e061f317e8845e7dbb0
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-29
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-29
|
||||
|
||||
The minimum length of a valid QUIC packet is 21
|
||||
|
||||
commit d037dc32b4ddac267b0ede89f5f6f334319c636b
|
||||
Merge: a4dad6d3 e045b463
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-28
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-28
|
||||
|
||||
Merge pull request #2301 from nghttp2/dependabot/go_modules/github.com/quic-go/quic-go-0.49.0
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.49.0
|
||||
|
||||
commit e045b46352a9a36834c7157c77e873d570717c26
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-27
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.49.0
|
||||
|
||||
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.48.2 to 0.49.0.
|
||||
- [Release notes](https://github.com/quic-go/quic-go/releases)
|
||||
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md)
|
||||
- [Commits](https://github.com/quic-go/quic-go/compare/v0.48.2...v0.49.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: github.com/quic-go/quic-go
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit a4dad6d36acde0f2a511632ba8fa395e70159b41
|
||||
Merge: 0c9fdf26 bdf7f14b
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-27
|
||||
|
||||
Merge pull request #2300 from nghttp2/stale-exempt-pr
|
||||
|
||||
GHA: Exempt pull request from actions/stale
|
||||
|
||||
commit bdf7f14b3d914d43ca7f9d1c6641331e7970b155
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-27
|
||||
|
||||
GHA: Exempt pull request from actions/stale
|
||||
|
||||
commit 0c9fdf26397d6f46595dd0f0df4091dd50606f70
|
||||
Merge: 280110ca dd59dd8b
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-26
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-26
|
||||
|
||||
Merge pull request #2299 from nghttp2/nullptr
|
||||
|
||||
src: nullptr
|
||||
|
||||
commit dd59dd8ba99b3e40ed6a1bfb4ba5f676be8e386d
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-26
|
||||
|
||||
src: nullptr
|
||||
|
||||
commit 280110ca8dd1563b9fe1597bd33fbf0607fb5f5c
|
||||
Merge: e25e68f2 f9958255
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-26
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-26
|
||||
|
||||
Merge pull request #2298 from nghttp2/fix-stale-action
|
||||
|
||||
Workaround actions/stale cache issue
|
||||
|
||||
commit f9958255ee08011a7d72060bcb1675a8f0842635
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-26
|
||||
|
||||
Workaround actions/stale cache issue
|
||||
|
||||
commit e25e68f23408720c11812ece06ffadb1b635f931
|
||||
Merge: ab19019b 01accaef
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-25
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-25
|
||||
|
||||
Merge pull request #2297 from thevilledev/fix/hd-int-overflow-check
|
||||
|
||||
fix: Add defensive bounds checking in hd_ringbuf_init()
|
||||
|
||||
commit 01accaef55254ffeeebf99b1b0ceeb9cc0592d8e
|
||||
Author: Ville Vesilehto <ville@vesilehto.fi>
|
||||
AuthorDate: 2025-01-24
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-24
|
||||
|
||||
fix: remove redundant sizeof check
|
||||
|
||||
Co-authored-by: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
|
||||
commit d06472b2c170cc898f9722b55005ef8cdbb07a63
|
||||
Author: Ville Vesilehto <ville@vesilehto.fi>
|
||||
AuthorDate: 2025-01-24
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-24
|
||||
|
||||
fix: optimise for conditions
|
||||
|
||||
Co-authored-by: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
|
||||
commit 8ada192e6942eb4f5b85d73b648de73185a3e112
|
||||
Author: Ville Vesilehto <ville@vesilehto.fi>
|
||||
AuthorDate: 2025-01-24
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-24
|
||||
|
||||
fix: set max_size as const
|
||||
|
||||
Co-authored-by: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
|
||||
commit 639b14710b83c831b5c2bc75d33e385da4cde22e
|
||||
Author: Ville Vesilehto <ville@vesilehto.fi>
|
||||
AuthorDate: 2025-01-20
|
||||
Commit: Ville Vesilehto <ville@vesilehto.fi>
|
||||
CommitDate: 2025-01-20
|
||||
|
||||
fix: Add defensive integer overflow checks in hd ringbuf init
|
||||
|
||||
Add bounds checking in hd_ringbuf_init() to prevent potential integer
|
||||
overflow during size calculations. While HPACK decoder controls its own
|
||||
buffer size (4-8K typical) and is not vulnerable to remote exploitation,
|
||||
this adds defensive programming guards for robustness.
|
||||
|
||||
Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
|
||||
|
||||
commit ab19019b77bc04925cbede25307720af056b83d3
|
||||
Merge: f88c0985 15d75404
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-18
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-18
|
||||
|
||||
Merge pull request #2296 from nghttp2/xmlfree
|
||||
|
||||
HtmlParser: Use xmlFree
|
||||
|
||||
commit 15d754040a03101bed219fd4ae910f56446b1b84
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-18
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-18
|
||||
|
||||
HtmlParser: Use xmlFree
|
||||
|
||||
commit f88c09857dc8819c3a849a67a5e1d8e10503b49f
|
||||
Merge: e5309612 3cb06f11
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-14
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-14
|
||||
|
||||
Merge pull request #2295 from nghttp2/dependabot/go_modules/golang.org/x/net-0.34.0
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.33.0 to 0.34.0
|
||||
|
||||
commit 3cb06f116d662843cc4fbd82ffd251cd90842532
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-13
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-13
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.33.0 to 0.34.0
|
||||
|
||||
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.33.0 to 0.34.0.
|
||||
- [Commits](https://github.com/golang/net/compare/v0.33.0...v0.34.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: golang.org/x/net
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit e53096123c961357302442fb1e0ac14cf7bc7e03
|
||||
Merge: 6494f056 48cdba35
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Merge pull request #2294 from nghttp2/remove-nghttp2-dependency-based-priority-section
|
||||
|
||||
Remove nghttp2 dependency based priority section
|
||||
|
||||
commit 48cdba3553b294a470651f040d4c9dfff9fdea74
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Update manual pages
|
||||
|
||||
commit 71498767046147f87bb3a5b01d5e4ff35dfba4c3
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
nghttp: Remove DEPENDENCY BASED PRIORITY section from its manual page
|
||||
|
||||
commit 6494f0563818cbc27a351769c1bc649f89177140
|
||||
Merge: 1f581807 db12ee7a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Merge pull request #2293 from nghttp2/update-priority-doc
|
||||
|
||||
Update Stream priorities section
|
||||
|
||||
commit 1f5818070d0500822f03bc1194a655494a724dc9
|
||||
Merge: d928ceb7 82602821
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Merge pull request #2292 from nghttp2/nghttp-show-deprecation-warn-no-rfc7540-pri
|
||||
|
||||
nghttp: Show deprecation warning for --no-rfc7540-pri option
|
||||
|
||||
commit db12ee7a37bbd2ba7d2a59b3c31b0dd1f31aac1d
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Update Stream priorities section
|
||||
|
||||
commit 82602821d00ff42eae0c7cf8cfe4a7eba2d0c563
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
nghttp: Show deprecation warning for --no-rfc7540-pri option
|
||||
|
||||
commit d928ceb75a364f1e199b841eae1548cc9897c9c2
|
||||
Merge: 7e096cbc 7f871f63
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
Merge pull request #2291 from nghttp2/nghttpd-remove-rfc7540-pri
|
||||
|
||||
nghttpd: Remove RFC 7540 priorities
|
||||
|
||||
commit 7f871f63ea0935c9a09c3eab6b310f051806a672
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-12
|
||||
|
||||
nghttpd: Remove RFC 7540 priorities
|
||||
|
||||
This change deprecates --no-rfc7540-pri option.
|
||||
SETTINGS_NO_RFC7540_PRIORITIES is now always sent.
|
||||
|
||||
commit 7e096cbc4131b1473e91e0e672a2bc2ca2ad91cf
|
||||
Merge: c8bcf5a6 f25a8dca
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-11
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-11
|
||||
|
||||
Merge pull request #2290 from nghttp2/nghttp-remove-rfc7540-pri
|
||||
|
||||
nghttp: Remove RFC 7540 priorities
|
||||
|
||||
commit f25a8dca17446f525ce2930918e503536dcd4374
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-10
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-11
|
||||
|
||||
nghttp: Remove RFC 7540 priorities
|
||||
|
||||
This change removes RFC 7540 priorities from nghttp. nghttp now does
|
||||
not create the initial dependency tree. --no-dep and --no-rfc7540-pri
|
||||
options have been removed.
|
||||
|
||||
nghttp now always sends NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES.
|
||||
--extpri option has been added to set priority for a given URI.
|
||||
|
||||
commit c8bcf5a6a2157b316444dddd8d262778b41f2821
|
||||
Merge: 26a33cf9 b2a3299e
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-11
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-11
|
||||
|
||||
Merge pull request #2289 from nghttp2/deprecate-nghttp2_option_set_no_closed_streams
|
||||
|
||||
Deprecate nghttp2_option_set_no_closed_streams
|
||||
|
||||
commit b2a3299e8ecec9a879c41415373a46f8eb4cb286
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-10
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-11
|
||||
|
||||
Deprecate nghttp2_option_set_no_closed_streams
|
||||
|
||||
commit 26a33cf99bd30d4be24c6f6e534286cbddd86d05
|
||||
Merge: cb8421e3 96e06509
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-10
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-10
|
||||
|
||||
Merge pull request #2288 from nghttp2/deprecate-nghttp2_option_set_server_fallback_rfc7540_priorities
|
||||
|
||||
Deprecate nghttp2_option_set_server_fallback_rfc7540_priorities
|
||||
|
||||
commit cb8421e3537154536dfaf8d1d8fdea77de672b21
|
||||
Merge: 8c83772f 3dd61f8e
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-10
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-10
|
||||
|
||||
Merge pull request #2287 from nghttp2/remove-rfc7540-priority
|
||||
|
||||
Remove RFC 7540 priorities
|
||||
|
||||
commit 96e06509ac558d1b740cc62e2e6bf442b4d4667b
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-10
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-10
|
||||
|
||||
Deprecate nghttp2_option_set_server_fallback_rfc7540_priorities
|
||||
|
||||
commit 3dd61f8ec3990928ee5f2606353d2b291f771aab
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-03-25
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-10
|
||||
|
||||
Remove RFC 7540 priorities
|
||||
|
||||
Summary of the behavioral changes in public API functions:
|
||||
|
||||
- nghttp2_session_change_stream_priority: This function is noop. It
|
||||
always returns 0.
|
||||
- nghttp2_session_create_idle_stream: This function is noop. It
|
||||
always returns 0.
|
||||
- nghttp2_submit_request: pri_spec is ignored.
|
||||
- nghttp2_submit_request2: pri_spec is ignored.
|
||||
- nghttp2_submit_headers: pri_spec is ignored.
|
||||
- nghttp2_submit_priority: This function is noop. It always returns
|
||||
0.
|
||||
- nghttp2_stream_get_parent: This function always returns NULL.
|
||||
- nghttp2_stream_get_next_sibling: This function always returns NULL.
|
||||
- nghttp2_stream_get_previous_sibling: This function always returns
|
||||
NULL.
|
||||
- nghttp2_stream_get_first_child: This function always returns NULL.
|
||||
- nghttp2_stream_get_weight: This function always returns
|
||||
NGHTTP2_DEFAULT_WEIGHT.
|
||||
- nghttp2_stream_get_sum_dependency_weight: This function always
|
||||
returns 0.
|
||||
|
||||
commit 8c83772f6c45a571fb209e9ec91729a360b8490f
|
||||
Merge: 5ca0bca1 a8d731d8
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-01-03
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-01-03
|
||||
|
||||
Merge pull request #2286 from nghttp2/bump-munit
|
||||
|
||||
Bump munit
|
||||
|
||||
commit a8d731d81fb34fa253cc9cb7c8874f096914ee00
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-01-03
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-01-03
|
||||
|
||||
Bump munit
|
||||
|
||||
commit 5ca0bca19992fbb08792a25a6657a61c16f78710
|
||||
Merge: 89f27a59 23a17d00
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-19
|
||||
|
||||
Merge pull request #2283 from nghttp2/bump-ngtcp2
|
||||
|
||||
Bump ngtcp2 and QUIC dependencies
|
||||
|
||||
commit 89f27a597f4237d1c70a7d2b1b6c559ff4182ed6
|
||||
Merge: 59f85c5d 947928bc
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-19
|
||||
|
||||
Merge pull request #2282 from nghttp2/bump-golang.org/x/net
|
||||
|
||||
Bump golang.org/x/net to v0.33.0
|
||||
|
||||
commit 947928bcc2a8a5951a7ff15ea032501bae98927b
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-12-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-12-19
|
||||
|
||||
Bump golang.org/x/net to v0.33.0
|
||||
|
||||
commit 23a17d0048f581856a363f6e3498815b0a4e4844
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-12-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-12-19
|
||||
|
||||
Bump ngtcp2 and QUIC dependencies
|
||||
|
||||
commit 59f85c5d622ba46826f11e6d02b5aa39439cf7f8
|
||||
Merge: 92fa43ac c7bf69c8
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-10
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-10
|
||||
|
||||
Merge pull request #2281 from nghttp2/dependabot/go_modules/golang.org/x/net-0.32.0
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.31.0 to 0.32.0
|
||||
|
||||
commit c7bf69c8e1d8646b249ef08ad58f3bca06ff0f3b
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-09
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-09
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.31.0 to 0.32.0
|
||||
|
||||
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.31.0 to 0.32.0.
|
||||
- [Commits](https://github.com/golang/net/compare/v0.31.0...v0.32.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: golang.org/x/net
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit 92fa43ac912b6c3b3d8bbfde55416eaa4f4ad508
|
||||
Merge: 68c3600d b05ee704
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-10
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-10
|
||||
|
||||
Merge pull request #2279 from nghttp2/dependabot/go_modules/github.com/quic-go/quic-go-0.48.2
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.1 to 0.48.2
|
||||
|
||||
commit b05ee704dd020e9dd0a8ff329686241fdbaeb897
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2024-12-02
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-12-02
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.1 to 0.48.2
|
||||
|
||||
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.48.1 to 0.48.2.
|
||||
- [Release notes](https://github.com/quic-go/quic-go/releases)
|
||||
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md)
|
||||
- [Commits](https://github.com/quic-go/quic-go/compare/v0.48.1...v0.48.2)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: github.com/quic-go/quic-go
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-patch
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit 68c3600d9fe729b8c66424384472a23ae8b45cec
|
||||
Merge: eb22cc12 f51e9b30
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-11-25
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-11-25
|
||||
|
||||
Merge pull request #2275 from nghttp2/bump-ngtcp2
|
||||
|
||||
Bump ngtcp2
|
||||
|
||||
commit f51e9b300f35ab50b16d3cdece1acf6ff9425357
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-11-25
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-11-25
|
||||
|
||||
GHA: Fix build error on Mac OS 14
|
||||
|
||||
commit f61d304ef38f92fb4c898664c48df9eadde36f9f
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-11-25
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-11-25
|
||||
|
||||
Bump ngtcp2 and its dependencies
|
||||
|
||||
commit eb22cc1231a6b57b384abcd9948eb3ddfb844755
|
||||
Merge: 55c5adf9 41c8940a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-11-18
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-11-18
|
||||
|
||||
Merge pull request #2274 from nghttp2/bump-sfparse
|
||||
|
||||
Bump sfparse to 7eaf5b651f67123edf2605391023ed2fd7e2ef16
|
||||
|
||||
commit 41c8940a4ca9875b6ada4d432d8d2f2beeda0e60
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-11-18
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-11-18
|
||||
|
||||
Bump sfparse to 7eaf5b651f67123edf2605391023ed2fd7e2ef16
|
||||
|
||||
commit 55c5adf9676ecb49e8083fe3458381e751796123
|
||||
Merge: da14a31c db315a45
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-11-16
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-11-16
|
||||
|
||||
Merge pull request #2273 from nghttp2/urlparse
|
||||
|
||||
Replace url-parser with urlparse
|
||||
|
||||
commit db315a458810adb7d30be01315d48addd2a9fc40
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-11-16
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-11-16
|
||||
|
||||
Replace url-parser with urlparse
|
||||
|
||||
commit da14a31cfb7dd05ee0b5cbbc6ec9d04cc87da365
|
||||
Merge: 7a96731c f5b0c5bf
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-11-15
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-11-15
|
||||
|
||||
Merge pull request #2272 from nghttp2/dependabot/go_modules/golang.org/x/net-0.31.0
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.30.0 to 0.31.0
|
||||
|
||||
commit f5b0c5bf06354d8cdb5fc46ee1c736e818bb2933
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2024-11-11
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-11-11
|
||||
|
||||
build(deps): bump golang.org/x/net from 0.30.0 to 0.31.0
|
||||
|
||||
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.30.0 to 0.31.0.
|
||||
- [Commits](https://github.com/golang/net/compare/v0.30.0...v0.31.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: golang.org/x/net
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit 7a96731c6b03810bb5f45b3bd34806b895d7446e
|
||||
Merge: 82ec1af2 ce70fb2a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-30
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-30
|
||||
|
||||
Merge pull request #2268 from TuxInvader/conn-close-bytes
|
||||
|
||||
account for bytes on closing connections
|
||||
|
||||
commit ce70fb2a3e46a60a73ffe5526be9d1bdc87bd8ba
|
||||
Author: Mark Boddington <TuxInvader@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-29
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-29
|
||||
|
||||
remove len check
|
||||
|
||||
commit 82ec1af20e05b6f3d7c3b9106f777dcd28e732a1
|
||||
Merge: 55d4de79 5024c1b2
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-29
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-29
|
||||
|
||||
Merge pull request #2270 from nghttp2/dependabot/go_modules/github.com/quic-go/quic-go-0.48.1
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.0 to 0.48.1
|
||||
|
||||
commit 5024c1b2409a35c670fe945eb27c944f0e03d0c9
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-28
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-28
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.48.0 to 0.48.1
|
||||
|
||||
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.48.0 to 0.48.1.
|
||||
- [Release notes](https://github.com/quic-go/quic-go/releases)
|
||||
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md)
|
||||
- [Commits](https://github.com/quic-go/quic-go/compare/v0.48.0...v0.48.1)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: github.com/quic-go/quic-go
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-patch
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit a30bc25ac7327764863b430da3a713095afbe9df
|
||||
Author: Mark Boddington <TuxInvader@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-25
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-25
|
||||
|
||||
account for bytes on closing connections
|
||||
|
||||
commit 55d4de7963bc8c2c849cf4ca0c195a6d9f8e12eb
|
||||
Merge: fcd4f266 69df6871
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-22
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-22
|
||||
|
||||
Merge pull request #2266 from nghttp2/dependabot/go_modules/github.com/quic-go/quic-go-0.48.0
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.47.0 to 0.48.0
|
||||
|
||||
commit 69df6871f63994fa41b09f2d1972ee43982e894b
|
||||
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
AuthorDate: 2024-10-21
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2024-10-21
|
||||
|
||||
build(deps): bump github.com/quic-go/quic-go from 0.47.0 to 0.48.0
|
||||
|
||||
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.47.0 to 0.48.0.
|
||||
- [Release notes](https://github.com/quic-go/quic-go/releases)
|
||||
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md)
|
||||
- [Commits](https://github.com/quic-go/quic-go/compare/v0.47.0...v0.48.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: github.com/quic-go/quic-go
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-minor
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
|
||||
commit fcd4f2663a61d1098cb2fca7d4da7e009f285569
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2024-10-21
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2024-10-21
|
||||
|
||||
Bump package version
|
||||
1466
curl/dep/nghttp2/README.rst
Обычный файл
1466
curl/dep/nghttp2/README.rst
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
29
curl/dep/nghttp3/AUTHORS.txt
Обычный файл
29
curl/dep/nghttp3/AUTHORS.txt
Обычный файл
@@ -0,0 +1,29 @@
|
||||
Alexis La Goutte
|
||||
Amir Livneh
|
||||
Bruno S Marques
|
||||
Bryan Call
|
||||
Cheng Zhao
|
||||
Daniel Bevenius
|
||||
Daniel Stenberg
|
||||
Deel
|
||||
Dimitris Apostolou
|
||||
Don
|
||||
Don Olmstead
|
||||
Dusk_NM02
|
||||
Force Charlie
|
||||
James M Snell
|
||||
Javier Blazquez
|
||||
Li Xinwei
|
||||
Marek Ludha
|
||||
Nishant Nori
|
||||
Ondřej Koláček
|
||||
Peter Wu
|
||||
Tal Regev
|
||||
Tatsuhiro Tsujikawa
|
||||
Tim Gates
|
||||
Toni Uhlig
|
||||
Valère Plantevin
|
||||
Viktor Szakats
|
||||
Your Name
|
||||
lhuang04
|
||||
mbuhl
|
||||
22
curl/dep/nghttp3/COPYING.txt
Обычный файл
22
curl/dep/nghttp3/COPYING.txt
Обычный файл
@@ -0,0 +1,22 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 nghttp3 contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
15
curl/dep/nghttp3/ChangeLog.txt
Обычный файл
15
curl/dep/nghttp3/ChangeLog.txt
Обычный файл
@@ -0,0 +1,15 @@
|
||||
commit df0d504b60a2600f57ab300ca2b61f64905e7d15
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-27
|
||||
|
||||
Bump package and library versions
|
||||
|
||||
commit 7abad8b0c920c1e587ee52ee8a5f76241d177828
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-27
|
||||
|
||||
Revert "Tighten up :path validation"
|
||||
73
curl/dep/nghttp3/README.rst
Обычный файл
73
curl/dep/nghttp3/README.rst
Обычный файл
@@ -0,0 +1,73 @@
|
||||
nghttp3
|
||||
=======
|
||||
|
||||
nghttp3 is an implementation of `RFC 9114
|
||||
<https://datatracker.ietf.org/doc/html/rfc9114>`_ HTTP/3 mapping over
|
||||
QUIC and `RFC 9204 <https://datatracker.ietf.org/doc/html/rfc9204>`_
|
||||
QPACK in C.
|
||||
|
||||
It does not depend on any particular QUIC transport implementation.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
`Online documentation <https://nghttp2.org/nghttp3/>`_ is available.
|
||||
|
||||
Build from git
|
||||
---------------
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone https://github.com/ngtcp2/nghttp3
|
||||
$ cd nghttp3
|
||||
$ git submodule update --init
|
||||
$ autoreconf -i
|
||||
$ ./configure
|
||||
$ make -j$(nproc) check
|
||||
|
||||
HTTP/3
|
||||
------
|
||||
|
||||
This library implements `RFC 9114
|
||||
<https://datatracker.ietf.org/doc/html/rfc9114>`_ HTTP/3. It does not
|
||||
support server push.
|
||||
|
||||
The following extensions have been implemented:
|
||||
|
||||
- `Extensible Prioritization Scheme for HTTP
|
||||
<https://datatracker.ietf.org/doc/html/rfc9218>`_
|
||||
- `Bootstrapping WebSockets with HTTP/3
|
||||
<https://datatracker.ietf.org/doc/html/rfc9220>`_
|
||||
|
||||
It can also send and receive `SETTINGS_H3_DATAGRAM` from `HTTP
|
||||
Datagrams and the Capsule Protocol
|
||||
<https://datatracker.ietf.org/doc/html/rfc9297>`_.
|
||||
|
||||
QPACK
|
||||
-----
|
||||
|
||||
This library implements `RFC 9204
|
||||
<https://datatracker.ietf.org/doc/html/rfc9204>`_ QPACK. It supports
|
||||
dynamic table.
|
||||
|
||||
Optimizations
|
||||
-------------
|
||||
|
||||
This library optionally uses AVX2, if available, to optimize its
|
||||
performance. To compile with AVX2, add ``-mavx2`` to CFLAGS. Note
|
||||
that by default, CFLAGS is set to ``-g -O2``. When specifying CFLAGS,
|
||||
include them as well (e.g., ``-g -O2 -mavx2``).
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
- client: https://github.com/ngtcp2/ngtcp2/blob/main/examples/client.cc
|
||||
- server: https://github.com/ngtcp2/ngtcp2/blob/main/examples/server.cc
|
||||
- curl: https://github.com/curl/curl/blob/master/lib/vquic/curl_ngtcp2.c
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 nghttp3 contributors
|
||||
67
curl/dep/ngtcp2/AUTHORS.txt
Обычный файл
67
curl/dep/ngtcp2/AUTHORS.txt
Обычный файл
@@ -0,0 +1,67 @@
|
||||
Alexis La Goutte
|
||||
Amir Livneh
|
||||
Anna Henningsen
|
||||
Atle Solbakken
|
||||
Bas van den Berg
|
||||
Billy Robert O'Neal III
|
||||
Bruno S Marques
|
||||
Bryan Call
|
||||
Cheng Zhao
|
||||
Daan De Meyer
|
||||
Daiki Ueno
|
||||
Daniel Bevenius
|
||||
Daniel Stenberg
|
||||
Dave Reisner
|
||||
Don
|
||||
Don Olmstead
|
||||
Frank Osterfeld
|
||||
Frédéric Lécaille
|
||||
Félix Dagenais
|
||||
Irina Guberman
|
||||
James M Snell
|
||||
Jan Doskočil
|
||||
Jason Rhinelander
|
||||
Javier Blazquez
|
||||
Jay Satiro
|
||||
Jean-Philippe Boivin
|
||||
Jiawen Geng
|
||||
Jixinqi
|
||||
Junqi Wang
|
||||
Karthikdasari0423
|
||||
Kazu Yamamoto
|
||||
Ken-ichi ICHINO
|
||||
Kenjiro Nakayama
|
||||
Lars Eggert
|
||||
Liang Ma
|
||||
Marin Rukavina
|
||||
Mark Chiou
|
||||
Martin Thomson
|
||||
Michael White
|
||||
Moritz Buhl
|
||||
NKTelnet
|
||||
Natris
|
||||
Nishant Nori
|
||||
Patrick Griffis
|
||||
Pavel Otchertsov
|
||||
Peter Wu
|
||||
Samuel Henrique
|
||||
Stefan Eissing
|
||||
Tal Regev
|
||||
Tatsuhiro Tsujikawa
|
||||
Tim Gates
|
||||
Tomas Mraz
|
||||
Toni Uhlig
|
||||
Valère Plantevin
|
||||
Victor Loh
|
||||
Viktor Szakats
|
||||
Your Name
|
||||
Zizhong Zhang
|
||||
flx413
|
||||
hondaxiao
|
||||
hyunjic
|
||||
junqiw
|
||||
msoxzw
|
||||
nickfajones
|
||||
rhoxn
|
||||
scw00
|
||||
shibin k v
|
||||
22
curl/dep/ngtcp2/COPYING.txt
Обычный файл
22
curl/dep/ngtcp2/COPYING.txt
Обычный файл
@@ -0,0 +1,22 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2016 ngtcp2 contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
620
curl/dep/ngtcp2/ChangeLog.txt
Обычный файл
620
curl/dep/ngtcp2/ChangeLog.txt
Обычный файл
@@ -0,0 +1,620 @@
|
||||
commit 7dd482f949f145632c482d01af2184954b471795
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Bump package and library versions
|
||||
|
||||
commit c1550b0fb8c864df021417744d2beac6f2a61f26
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Update AUTHORS
|
||||
|
||||
commit dec3e0ccd3dbff5457d76003b6e34c71063497ec
|
||||
Merge: f0c08bc9 1db3624d
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Merge pull request #1654 from ngtcp2/bump-aws-lc
|
||||
|
||||
Bump aws-lc to v1.52.0
|
||||
|
||||
commit 1db3624dc774603d28473c949c7a3a1125df800a
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Bump aws-lc to v1.52.0
|
||||
|
||||
commit f0c08bc94f6a06f05c468ec4174f05f605606d22
|
||||
Merge: 51fb9608 c5235a75
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Merge pull request #1653 from ngtcp2/bump-boringssl
|
||||
|
||||
Bump boringssl
|
||||
|
||||
commit c5235a75c92b0444b3fd9a5ac716c2f48dfb5435
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-26
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-26
|
||||
|
||||
Bump boringssl
|
||||
|
||||
commit 51fb9608e18124ef98d2d6406da047c69593aaec
|
||||
Merge: c483a8f1 8626ddd7
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-12
|
||||
|
||||
Merge pull request #1651 from ngtcp2/constexpr-istarts_with
|
||||
|
||||
Make istarts_with constexpr
|
||||
|
||||
commit 8626ddd7a6bca940138588508396bf766e9fbdfe
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-12
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-12
|
||||
|
||||
Make istarts_with constexpr
|
||||
|
||||
commit c483a8f1b6c4ec8dc1fe704f925ec71c5106d2af
|
||||
Merge: f7a4030a d61fb269
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-12
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-12
|
||||
|
||||
Merge pull request #1650 from ngtcp2/bump-munit
|
||||
|
||||
Bump munit
|
||||
|
||||
commit d61fb2693fb091ff1a0f631c17c21e2564465a38
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-11
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-11
|
||||
|
||||
Bump munit
|
||||
|
||||
commit f7a4030ab25c3f481f38e6f3e87da9ea9b7139bd
|
||||
Merge: c3ede479 210891fb
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-04
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-04
|
||||
|
||||
Merge pull request #1646 from nak3/bump-libressl-4.1.0
|
||||
|
||||
Bump libressl to v4.1.0
|
||||
|
||||
commit c3ede4793aacbe8b180fd9a4b3280e7f6264e115
|
||||
Merge: 4a1611ed 10ebe66c
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-04
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-04
|
||||
|
||||
Merge pull request #1647 from kazu-yamamoto/boringssl-mac
|
||||
|
||||
putting important libdir and incdir first
|
||||
|
||||
commit 210891fbaefde1995f5210fb3f63540f0ab07ff3
|
||||
Author: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
|
||||
CommitDate: 2025-05-03
|
||||
|
||||
Bump libressl to v4.1.0
|
||||
|
||||
commit 10ebe66c5c204934a939ba314d40c5d9e9008b7f
|
||||
Author: Kazu Yamamoto <kazu@iij.ad.jp>
|
||||
AuthorDate: 2025-05-02
|
||||
Commit: Kazu Yamamoto <kazu@iij.ad.jp>
|
||||
CommitDate: 2025-05-03
|
||||
|
||||
putting important libdir and incdir first
|
||||
|
||||
commit 4a1611ed5b17bcfbf3bdf197edfb1c60c195066e
|
||||
Merge: 1ab80a97 11216f47
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Merge pull request #1645 from ngtcp2/avoid-mismatch
|
||||
|
||||
Avoid slower std::ranges::mismatch
|
||||
|
||||
commit 11216f47288543bbab9a301930affe898a8ff54f
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Avoid slower std::ranges::mismatch
|
||||
|
||||
commit 1ab80a974eee74246cf5684b130492661e161936
|
||||
Merge: 261d31d1 426a023f
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Merge pull request #1644 from ngtcp2/as_uint8_span-consteval
|
||||
|
||||
Make as_uint8_span consteval
|
||||
|
||||
commit 426a023fc8d91d06a458dd7da39d434c02034e30
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Make as_uint8_span consteval
|
||||
|
||||
commit 261d31d13e6401d9719c0067064f05001a5a04e7
|
||||
Merge: 04313d14 0ee64591
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Merge pull request #1643 from ngtcp2/refactor-examples
|
||||
|
||||
Refactor examples
|
||||
|
||||
commit 0ee645916789e121ce5b242125d9761785a2ca7d
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Refactor parse_host_port
|
||||
|
||||
commit 71f1985238d5d696c827f802140fd92163c8e957
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
examples/client: Adopt std::unordered_map
|
||||
|
||||
commit edf55332b846ec1e7a924cdd063940f0c265a19c
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-05-01
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Rewrite ALPN selection
|
||||
|
||||
commit 8d765e0b0ff53a86d860db5a3584a3731d8261c9
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Remove unused b64encode
|
||||
|
||||
commit 9c50a92b862a1c81d8454346caec5b5cbda2bb84
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
C++ style cast
|
||||
|
||||
commit 9fbfbf61251f1272bc6b87d7f1ecdb5f13658678
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
get_reason_phrase: Return std::string_view
|
||||
|
||||
commit 9f04b6b5ed1d7665eafe070865f05d781d38e319
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
siphash: Adopt std::ranges
|
||||
|
||||
commit c65071bf1c52cbd256d64599c05431c5c0f7519d
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
picotls: Adopt std::ranges
|
||||
|
||||
commit e4901d2720ab3e467d5b60c4adc75c4796eb3ebe
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
picotls: Refactor ticket encryption/decryption function
|
||||
|
||||
commit 9cdee080fb38b2c4388530c68abc3897332e6c4e
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Refactor ALPN definitions
|
||||
|
||||
commit 22fdfc6f7216400580ebceff4e75ff9a56fbb03e
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
examples/client: Adopt std::ranges
|
||||
|
||||
commit 8d67312aaf5f29b69b6ea34d7efb9384b6bf40d4
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
tls_server_*: Adopt std::ranges
|
||||
|
||||
commit 19e3af2520d206b18f91a91dc0672761bec4ec72
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
examples/server: Adopt std::ranges
|
||||
|
||||
commit e27fd65169e410b19e979e4882d01886d504cefd
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Append sv to string arguments to read_pem and write_pem
|
||||
|
||||
commit 3795fde07f00991d5e9a9424c578bcb460906791
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Refactor hexdump with std::span
|
||||
|
||||
commit 846d45bc3926a4a3f16fede156d2387b9b0e65a8
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
Refactor parse_version
|
||||
|
||||
commit 9a3d76654e86a63d81fabe676c632a3a9e3aa532
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
percent_decode: Take std::string_view
|
||||
|
||||
commit b778aa08802ccb0f9866ea1b95e98a82598b9db4
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-30
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-05-01
|
||||
|
||||
examples/util: Adopt std::ranges
|
||||
|
||||
commit 04313d145c7badc950853044673854212cbeb086
|
||||
Merge: 2ede338d b3eccce4
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-28
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-28
|
||||
|
||||
Merge pull request #1640 from ngtcp2/span-first
|
||||
|
||||
examples: Adopt std::span::first
|
||||
|
||||
commit b3eccce4173748f6ce2bceb11dd4e8116a73045f
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-28
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-28
|
||||
|
||||
examples: Adopt std::span::first
|
||||
|
||||
commit 2ede338d96d3d9ded87b2641bfe83a15cf301ac5
|
||||
Merge: 0271af1c 4779b8bf
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-28
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-28
|
||||
|
||||
Merge pull request #1638 from ngtcp2/client-refactor-packet-write
|
||||
|
||||
examples/client: Refactor packet write path
|
||||
|
||||
commit 4779b8bfc7df59ad6c8493edc96496fa48230a0e
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-28
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-28
|
||||
|
||||
examples/client: Refactor packet write path
|
||||
|
||||
commit 0271af1c504e769223214cd2138dfadb668f9b1f
|
||||
Merge: fdf255b4 280c64ac
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
Merge pull request #1637 from ngtcp2/server-refactor-on_send_blocked
|
||||
|
||||
examples/server: Refactor on_send_blocked
|
||||
|
||||
commit 280c64ac6aad528f0d0bf2f6b41c80ca0a7a5c2b
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
examples/server: Refactor on_send_blocked
|
||||
|
||||
commit fdf255b49593bf2333a6d357877bca170bd915ab
|
||||
Merge: ab43336b 225fc54b
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
Merge pull request #1636 from ngtcp2/server-endpoint-const
|
||||
|
||||
examples/server: Add const qualifier to Endpoint when passed to function
|
||||
|
||||
commit 225fc54bd12a78b3fd03ebf9b4dd2941fc38ccc4
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
examples/server: Add const qualifier to Endpoint when passed to function
|
||||
|
||||
commit ab43336bf514f8d6a82f1107dc52ee9f35d129b6
|
||||
Merge: f2ab5479 b25ba934
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
Merge pull request #1635 from ngtcp2/server-refactor-packet-write
|
||||
|
||||
examples/server: Refactor packet write
|
||||
|
||||
commit b25ba9345fe7cbc97d9220ef6a67a6ad84de159b
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
examples/server: Refactor packet write
|
||||
|
||||
commit f2ab54791fdd664195a84692b08a84c35baefa29
|
||||
Merge: 709806d3 1be14245
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
Merge pull request #1634 from ngtcp2/bump-wolfssl
|
||||
|
||||
Bump wolfssl to v5.8.0-stable
|
||||
|
||||
commit 1be1424585ed09702d223ab9da313d508f2725e1
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-27
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-27
|
||||
|
||||
Bump wolfssl to v5.8.0-stable
|
||||
|
||||
commit 709806d3fe258a0dd0b6cc40b5f03ec3c3c07f89
|
||||
Merge: a5d03dd7 95dadc5a
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-22
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-22
|
||||
|
||||
Merge pull request #1630 from ngtcp2/cubic-bound-time-delta
|
||||
|
||||
cubic: Bound time_delta
|
||||
|
||||
commit 95dadc5a484216edaecef46abbb4c85798e4e19d
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-22
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-22
|
||||
|
||||
cubic: Bound time_delta
|
||||
|
||||
commit a5d03dd7c9b4b379770f22df8670d8c329faf518
|
||||
Merge: e92f7528 9fcff171
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-21
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-21
|
||||
|
||||
Merge pull request #1629 from ngtcp2/refactor-cubic
|
||||
|
||||
Refactor cubic
|
||||
|
||||
commit 9fcff171091382f58005705dfdb4b405015b1a2b
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-20
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-21
|
||||
|
||||
Refactor cubic
|
||||
|
||||
commit e92f75288d9a66d3969e5b2f5b108b980037733d
|
||||
Merge: 02ebe607 876c29af
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-20
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-20
|
||||
|
||||
Merge pull request #1628 from ngtcp2/pacing-interval
|
||||
|
||||
Add extra precision to pacing_interval
|
||||
|
||||
commit 876c29afd910dd5d69d2663dc9465507eefd78c6
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-20
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-20
|
||||
|
||||
Add extra precision to pacing_interval
|
||||
|
||||
commit 02ebe6075a043f6f1eeaa7f81ff07f1f4775bf32
|
||||
Merge: 3e31700b b30e8c33
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Merge pull request #1627 from ngtcp2/pacing-less-bursty
|
||||
|
||||
Make pacing less bursty
|
||||
|
||||
commit b30e8c33d9099472c9df66c072200a36ce0d3b76
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Make pacing less bursty
|
||||
|
||||
commit 3e31700b746dc612d0c8edbb23b8aaf842a3b1f2
|
||||
Merge: c239f04f 1a77af29
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Merge pull request #1626 from ngtcp2/path-response-non-probing
|
||||
|
||||
Make a packet containing PATH_RESPONSE to active path non-probing
|
||||
|
||||
commit 1a77af297cd7391155a870896e2af1a6c9610a64
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Make a packet containing PATH_RESPONSE to active path non-probing
|
||||
|
||||
commit c239f04f982726df75afd2673256bb69b3f0a3fa
|
||||
Merge: 438d4e9d d6d4f064
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Merge pull request #1625 from ngtcp2/fix-path-response-padding
|
||||
|
||||
Fix path response padding
|
||||
|
||||
commit d6d4f064c917c5f60e61070821b6a67ee07e3d3a
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Remove unnecessary conn->pkt.require_padding manipulation
|
||||
|
||||
On first write call (!ppe_pending),
|
||||
NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING suggests padding requirement.
|
||||
On the subsequent calls (ppe_pending), conn->pkt.require_padding is
|
||||
used instead.
|
||||
|
||||
commit 47a9f9044532448d9cedd452a7230feb1b3a4a34
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Fix bug that packet is not padded with NGTCP2_WRITE_STREAM_FLAG_MORE
|
||||
|
||||
Make sure that packet with PATH_RESPONSE to an active path is padded
|
||||
with NGTCP2_WRITE_STREAM_FLAG_MORE.
|
||||
|
||||
commit 438d4e9d7d4dad936a7cd57904ce1019568ce96d
|
||||
Merge: 4408e690 48cba1d2
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Merge pull request #1624 from jixinqi/jixinqi-patch-1
|
||||
|
||||
Update CMakeLists.txt to fix the error of check_symbol_exists() when static-link openssl.
|
||||
|
||||
commit 48cba1d21c126070c4fe13c5cfd7b87f7f9f1e09
|
||||
Author: Jixinqi <4635756+jixinqi@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-19
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-19
|
||||
|
||||
Update CMakeLists.txt to fix the error of check_symbol_exists() when static-link openssl.
|
||||
|
||||
commit 4408e6905274dc13131b67fdc6511193bf3ebf62
|
||||
Merge: 8e09f33f 4439eaa0
|
||||
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
|
||||
AuthorDate: 2025-04-18
|
||||
Commit: GitHub <noreply@github.com>
|
||||
CommitDate: 2025-04-18
|
||||
|
||||
Merge pull request #1623 from ngtcp2/update-doc
|
||||
|
||||
Update doc
|
||||
|
||||
commit 4439eaa08263a334968993649d2f42cb79f74d1a
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-18
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-18
|
||||
|
||||
Fix picotls crypto helper doc
|
||||
|
||||
commit 4b6e1c3f9db8817d4250d7a22b7795a4c173dff1
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-18
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-18
|
||||
|
||||
Update packet padding flag docs
|
||||
|
||||
commit 8e09f33ff0c53cf149607d177006e11b2bfbe0c0
|
||||
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
AuthorDate: 2025-04-16
|
||||
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
|
||||
CommitDate: 2025-04-16
|
||||
|
||||
Bump package version
|
||||
379
curl/dep/ngtcp2/README.rst
Обычный файл
379
curl/dep/ngtcp2/README.rst
Обычный файл
@@ -0,0 +1,379 @@
|
||||
ngtcp2
|
||||
======
|
||||
|
||||
"Call it TCP/2. One More Time."
|
||||
|
||||
ngtcp2 project is an effort to implement `RFC9000
|
||||
<https://datatracker.ietf.org/doc/html/rfc9000>`_ QUIC protocol.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
`Online documentation <https://nghttp2.org/ngtcp2/>`_ is available.
|
||||
|
||||
Public test server
|
||||
------------------
|
||||
|
||||
The following endpoints are available to try out ngtcp2
|
||||
implementation:
|
||||
|
||||
- https://nghttp2.org:4433
|
||||
- https://nghttp2.org:4434 (requires address validation token)
|
||||
- https://nghttp2.org (powered by `nghttpx
|
||||
<https://nghttp2.org/documentation/nghttpx.1.html>`_)
|
||||
|
||||
This endpoints sends Alt-Svc header field to clients if it is
|
||||
accessed via HTTP/1.1 or HTTP/2 to tell them that HTTP/3 is
|
||||
available at UDP 443.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
The libngtcp2 C library itself does not depend on any external
|
||||
libraries. The example client, and server are written in C++20, and
|
||||
should compile with the modern C++ compilers (e.g., clang >= 11.0, or
|
||||
gcc >= 11.0).
|
||||
|
||||
The following packages are required to configure the build system:
|
||||
|
||||
- pkg-config >= 0.20
|
||||
- autoconf
|
||||
- automake
|
||||
- autotools-dev
|
||||
- libtool
|
||||
|
||||
To build sources under the examples directory, libev and nghttp3 are
|
||||
required:
|
||||
|
||||
- libev
|
||||
- `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ for HTTP/3
|
||||
|
||||
To enable `TLS Certificate Compression
|
||||
<https://datatracker.ietf.org/doc/html/rfc8879>`_ in bsslclient and
|
||||
bsslserver (BoringSSL (aws-lc) examples client and server), the
|
||||
following library is required:
|
||||
|
||||
- libbrotli-dev >= 1.0.9
|
||||
|
||||
ngtcp2 crypto helper library, and client and server under examples
|
||||
directory require at least one of the following TLS backends:
|
||||
|
||||
- `quictls
|
||||
<https://github.com/quictls/openssl/tree/OpenSSL_1_1_1w+quic>`_
|
||||
- GnuTLS >= 3.7.5
|
||||
- BoringSSL (commit 9295969e1dad2c31d0d99481734c1c68dcbc6403);
|
||||
or aws-lc >= 1.39.0
|
||||
- Picotls (commit bbcdbe6dc31ec5d4b72a7beece4daf58098bad42)
|
||||
- wolfSSL >= 5.5.0
|
||||
- LibreSSL >= v3.9.2
|
||||
- OpenSSL >= 3.5.0 (experimental)
|
||||
|
||||
Before building from git
|
||||
------------------------
|
||||
|
||||
When build from git, run the following command to pull submodules:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git submodule update --init
|
||||
|
||||
Build with wolfSSL
|
||||
------------------
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone --depth 1 -b v5.8.0-stable https://github.com/wolfSSL/wolfssl
|
||||
$ cd wolfssl
|
||||
$ autoreconf -i
|
||||
$ # For wolfSSL < v5.6.6, append --enable-quic.
|
||||
$ ./configure --prefix=$PWD/build \
|
||||
--enable-all --enable-aesni --enable-harden --enable-keylog-export \
|
||||
--disable-ech
|
||||
$ make -j$(nproc)
|
||||
$ make install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/nghttp3
|
||||
$ cd nghttp3
|
||||
$ autoreconf -i
|
||||
$ ./configure --prefix=$PWD/build --enable-lib-only
|
||||
$ make -j$(nproc) check
|
||||
$ make install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
|
||||
$ cd ngtcp2
|
||||
$ autoreconf -i
|
||||
$ # For Mac users who have installed libev with MacPorts, append
|
||||
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
|
||||
$ ./configure PKG_CONFIG_PATH=$PWD/../wolfssl/build/lib/pkgconfig:$PWD/../nghttp3/build/lib/pkgconfig \
|
||||
--with-wolfssl
|
||||
$ make -j$(nproc) check
|
||||
|
||||
Build with BoringSSL
|
||||
--------------------
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone https://boringssl.googlesource.com/boringssl
|
||||
$ cd boringssl
|
||||
$ git checkout 9295969e1dad2c31d0d99481734c1c68dcbc6403
|
||||
$ cmake -B build -DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
$ make -j$(nproc) -C build
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/nghttp3
|
||||
$ cd nghttp3
|
||||
$ autoreconf -i
|
||||
$ ./configure --prefix=$PWD/build --enable-lib-only
|
||||
$ make -j$(nproc) check
|
||||
$ make install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
|
||||
$ cd ngtcp2
|
||||
$ autoreconf -i
|
||||
$ # For Mac users who have installed libev with MacPorts, append
|
||||
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
|
||||
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig \
|
||||
BORINGSSL_LIBS="-L$PWD/../boringssl/build -lssl -lcrypto" \
|
||||
BORINGSSL_CFLAGS="-I$PWD/../boringssl/include" \
|
||||
--with-boringssl
|
||||
$ make -j$(nproc) check
|
||||
|
||||
Build with aws-lc
|
||||
-----------------
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone --depth 1 -b v1.52.0 https://github.com/aws/aws-lc
|
||||
$ cd aws-lc
|
||||
$ cmake -B build -DDISABLE_GO=ON
|
||||
$ make -j$(nproc) -C build
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/nghttp3
|
||||
$ cd nghttp3
|
||||
$ autoreconf -i
|
||||
$ ./configure --prefix=$PWD/build --enable-lib-only
|
||||
$ make -j$(nproc) check
|
||||
$ make install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
|
||||
$ cd ngtcp2
|
||||
$ autoreconf -i
|
||||
$ # For Mac users who have installed libev with MacPorts, append
|
||||
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
|
||||
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig \
|
||||
BORINGSSL_CFLAGS="-I$PWD/../aws-lc/include" \
|
||||
BORINGSSL_LIBS="-L$PWD/../aws-lc/build/ssl -lssl -L$PWD/../aws-lc/build/crypto -lcrypto" \
|
||||
--with-boringssl
|
||||
$ make -j$(nproc) check
|
||||
|
||||
Build with libressl
|
||||
-----------------
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone --depth 1 -b v4.1.0 https://github.com/libressl/portable.git libressl
|
||||
$ cd libressl
|
||||
$ # Workaround autogen.sh failure
|
||||
$ export LIBRESSL_GIT_OPTIONS="-b libressl-v4.1.0"
|
||||
$ ./autogen.sh
|
||||
$ ./configure --prefix=$PWD/build
|
||||
$ make -j$(nproc) install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/nghttp3
|
||||
$ cd nghttp3
|
||||
$ autoreconf -i
|
||||
$ ./configure --prefix=$PWD/build --enable-lib-only
|
||||
$ make -j$(nproc) check
|
||||
$ make install
|
||||
$ cd ..
|
||||
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
|
||||
$ cd ngtcp2
|
||||
$ autoreconf -i
|
||||
$ # For Mac users who have installed libev with MacPorts, append
|
||||
$ # LIBEV_CFLAGS="-I/opt/homebrew/Cellar/libev/4.33/include" LIBEV_LIBS="-L/opt/homebrew/Cellar/libev/4.33/lib -lev"
|
||||
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig:$PWD/../libressl/build/lib/pkgconfig
|
||||
$ make -j$(nproc) check
|
||||
|
||||
Client/Server
|
||||
-------------
|
||||
|
||||
After successful build, the client and server executable should be
|
||||
found under examples directory. They talk HTTP/3.
|
||||
|
||||
Client
|
||||
~~~~~~
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ examples/wsslclient [OPTIONS] <HOST> <PORT> [<URI>...]
|
||||
|
||||
The notable options are:
|
||||
|
||||
- ``-d``, ``--data=<PATH>``: Read data from <PATH> and send it to a
|
||||
peer.
|
||||
|
||||
Server
|
||||
~~~~~~
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ examples/wsslserver [OPTIONS] <ADDR> <PORT> <PRIVATE_KEY_FILE> <CERTIFICATE_FILE>
|
||||
|
||||
The notable options are:
|
||||
|
||||
- ``-V``, ``--validate-addr``: Enforce stateless address validation.
|
||||
|
||||
H09wsslclient/H09wsslserver
|
||||
---------------------------
|
||||
|
||||
There are h09wsslclient and h09wsslserver which speak HTTP/0.9. They
|
||||
are written just for `quic-interop-runner
|
||||
<https://github.com/marten-seemann/quic-interop-runner>`_. They share
|
||||
the basic functionalities with HTTP/3 client and server but have less
|
||||
functions (e.g., h09wsslclient does not have a capability to send
|
||||
request body, and h09wsslserver does not understand numeric request
|
||||
path, like /1000).
|
||||
|
||||
Resumption and 0-RTT
|
||||
--------------------
|
||||
|
||||
In order to resume a session, a session ticket, and a transport
|
||||
parameters must be fetched from server. First, run
|
||||
examples/wsslclient with --session-file, and --tp-file options which
|
||||
specify a path to session ticket, and transport parameter files
|
||||
respectively to save them locally.
|
||||
|
||||
Once these files are available, run examples/wsslclient with the same
|
||||
arguments again. You will see that session is resumed in your log if
|
||||
resumption succeeds. Resuming session makes server's first Handshake
|
||||
packet pretty small because it does not send its certificates.
|
||||
|
||||
To send 0-RTT data, after making sure that resumption works, use -d
|
||||
option to specify a file which contains data to send.
|
||||
|
||||
Token (Not something included in Retry packet)
|
||||
----------------------------------------------
|
||||
|
||||
QUIC server might send a token to client after connection has been
|
||||
established. Client can send this token in subsequent connection to
|
||||
the server. Server verifies the token and if it succeeds, the address
|
||||
validation completes and lifts some restrictions on server which might
|
||||
speed up transfer. In order to save and/or load a token,
|
||||
use --token-file option of examples/wsslclient. The given file is
|
||||
overwritten if it already exists when storing a token.
|
||||
|
||||
Crypto helper library
|
||||
---------------------
|
||||
|
||||
In order to make TLS stack integration less painful, we provide a
|
||||
crypto helper library which offers the basic crypto operations.
|
||||
|
||||
The header file exists under crypto/includes/ngtcp2 directory.
|
||||
|
||||
Each library file is built for a particular TLS backend. The
|
||||
available crypto helper libraries are:
|
||||
|
||||
- libngtcp2_crypto_quictls: Use quictls and libressl as TLS backend
|
||||
- libngtcp2_crypto_gnutls: Use GnuTLS as TLS backend
|
||||
- libngtcp2_crypto_boringssl: Use BoringSSL and aws-lc as TLS backend
|
||||
- libngtcp2_crypto_picotls: Use Picotls as TLS backend
|
||||
- libngtcp2_crypto_wolfssl: Use wolfSSL as TLS backend
|
||||
- libngtcp2_crypto_ossl: Use OpenSSL as TLS backend (experimental)
|
||||
|
||||
Because BoringSSL and Picotls are an unversioned product, we only
|
||||
tested their particular revision. See Requirements section above.
|
||||
|
||||
We use Picotls with OpenSSL as crypto backend.
|
||||
|
||||
libngtcp2_crypto_ossl has some restrictions for its use because
|
||||
OpenSSL QUIC TLS API requires us to keep crypto data in tact until it
|
||||
says that they are no longer used. It also requires us to keep
|
||||
transport parameter buffer. This extra book keeping is just done for
|
||||
a couple of TLS messages exchanged during handshake and a couple of
|
||||
session tickets after handshake. If you absolutely need to use
|
||||
OpenSSL backend, your application must make sure that:
|
||||
|
||||
- Keep `ngtcp2_conn` alive until ``SSL`` object is freed by
|
||||
``SSL_free``; or
|
||||
- Call ``SSL_set_app_data(ssl, NULL)`` before calling ``SSL_free``
|
||||
|
||||
If you cannot make sure neither of them, it is a good time to migrate
|
||||
your application to the other alternative (e.g., wolfSSL, aws-lc).
|
||||
|
||||
libngtcp2_crypto_quictls and libngtcp2_crypto_ossl cannot be built at
|
||||
the same time.
|
||||
|
||||
The examples directory contains client and server that are linked to
|
||||
those crypto helper libraries and TLS backends. They are only built
|
||||
if their corresponding crypto helper library is built:
|
||||
|
||||
- qtlsclient: quictls(libressl) client
|
||||
- qtlsserver: quictls(libressl) server
|
||||
- gtlsclient: GnuTLS client
|
||||
- gtlsserver: GnuTLS server
|
||||
- bsslclient: BoringSSL(aws-lc) client
|
||||
- bsslserver: BoringSSL(aws-lc) server
|
||||
- ptlsclient: Picotls client
|
||||
- ptlsserver: Picotls server
|
||||
- wsslclient: wolfSSL client
|
||||
- wsslserver: wolfSSL server
|
||||
- osslclient: OpenSSL client
|
||||
- osslserver: OpenSSL server
|
||||
|
||||
QUIC protocol extensions
|
||||
-------------------------
|
||||
|
||||
The library implements the following QUIC protocol extensions:
|
||||
|
||||
- `An Unreliable Datagram Extension to QUIC
|
||||
<https://datatracker.ietf.org/doc/html/rfc9221>`_
|
||||
- `Greasing the QUIC Bit
|
||||
<https://datatracker.ietf.org/doc/html/rfc9287>`_
|
||||
- `Compatible Version Negotiation for QUIC
|
||||
<https://datatracker.ietf.org/doc/html/rfc9368>`_
|
||||
- `QUIC Version 2
|
||||
<https://datatracker.ietf.org/doc/html/rfc9369>`_
|
||||
|
||||
Configuring Wireshark for QUIC
|
||||
------------------------------
|
||||
|
||||
`Wireshark <https://www.wireshark.org/download.html>`_ can be configured to
|
||||
analyze QUIC traffic using the following steps:
|
||||
|
||||
1. Set *SSLKEYLOGFILE* environment variable:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ export SSLKEYLOGFILE=quic_keylog_file
|
||||
|
||||
2. Set the port that QUIC uses
|
||||
|
||||
Go to *Preferences->Protocols->QUIC* and set the port the program
|
||||
listens to. In the case of the example application this would be
|
||||
the port specified on the command line.
|
||||
|
||||
3. Set Pre-Master-Secret logfile
|
||||
|
||||
Go to *Preferences->Protocols->TLS* and set the *Pre-Master-Secret
|
||||
log file* to the same value that was specified for *SSLKEYLOGFILE*.
|
||||
|
||||
4. Choose the correct network interface for capturing
|
||||
|
||||
Make sure you choose the correct network interface for
|
||||
capturing. For example, if using localhost choose the *loopback*
|
||||
network interface on macos.
|
||||
|
||||
5. Create a filter
|
||||
|
||||
Create A filter for the udp.port and set the port to the port the
|
||||
application is listening to. For example:
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
udp.port == 7777
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2016 ngtcp2 contributors
|
||||
19
curl/dep/zlibng/LICENSE.md
Обычный файл
19
curl/dep/zlibng/LICENSE.md
Обычный файл
@@ -0,0 +1,19 @@
|
||||
(C) 1995-2024 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
228
curl/dep/zlibng/README.md
Обычный файл
228
curl/dep/zlibng/README.md
Обычный файл
@@ -0,0 +1,228 @@
|
||||
| CI | Stable | Develop |
|
||||
|:---|:-------|:--------|
|
||||
| GitHub Actions | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Astable) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Astable) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/nmake.yml?query=branch%3Astable) | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Adevelop) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Adevelop) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/nmake.yml?query=branch%3Adevelop) |
|
||||
| CodeFactor | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/stable) | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/develop) |
|
||||
| OSS-Fuzz | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) |
|
||||
| Codecov | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/stable) | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/develop) |
|
||||
|
||||
## zlib-ng
|
||||
*zlib data compression library for the next generation systems*
|
||||
|
||||
Maintained by Hans Kristian Rosbach
|
||||
aka Dead2 (zlib-ng àt circlestorm dót org)
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
* Zlib compatible API with support for dual-linking
|
||||
* Modernized native API based on zlib API for ease of porting
|
||||
* Modern C11 syntax and a clean code layout
|
||||
* Deflate medium and quick algorithms based on Intel’s zlib fork
|
||||
* Support for CPU intrinsics when available
|
||||
* Adler32 implementation using SSSE3, AVX2, AVX512, AVX512-VNNI, Neon, VMX & VSX
|
||||
* CRC32-B implementation using PCLMULQDQ, VPCLMULQDQ, ACLE, & IBM Z
|
||||
* Slide hash implementations using SSE2, AVX2, ARMv6, Neon, VMX & VSX
|
||||
* Compare256 implementations using SSE2, AVX2, Neon, POWER9 & RVV
|
||||
* Inflate chunk copying using SSE2, SSSE3, AVX, Neon & VSX
|
||||
* Support for hardware-accelerated deflate using IBM Z DFLTCC
|
||||
* Safe unaligned memory read/writes and large bit buffer improvements
|
||||
* Includes improvements from Cloudflare and Intel forks
|
||||
* Configure, CMake, and NMake build system support
|
||||
* Comprehensive set of CMake unit tests
|
||||
* Code sanitizers, fuzzing, and coverage
|
||||
* GitHub Actions continuous integration on Windows, macOS, and Linux
|
||||
* Emulated CI for ARM, AARCH64, PPC, PPC64, RISCV, SPARC64, S390x using qemu
|
||||
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
The motivation for this fork was seeing several 3rd party contributions with new optimizations not getting
|
||||
implemented into the official zlib repository.
|
||||
|
||||
Mark Adler has been maintaining zlib for a very long time, and he has done a great job and hopefully he will continue
|
||||
for a long time yet. The idea of zlib-ng is not to replace zlib, but to co-exist as a drop-in replacement with a
|
||||
lower threshold for code change.
|
||||
|
||||
zlib has a long history and is incredibly portable, even supporting many systems that predate the Internet.<br>
|
||||
That is great, but it can complicate further development and maintainability. The zlib code contains many workarounds
|
||||
for really old compilers or to accommodate systems with limitations such as operating in a 16-bit environment.
|
||||
|
||||
Many of these workarounds are only maintenance burdens, some of them are pretty huge code-wise. With many workarounds
|
||||
cluttered throughout the code, it makes it harder for new programmers with an idea/interest for zlib to contribute.
|
||||
|
||||
I decided to make a fork, merge all the Intel optimizations, some of the Cloudflare optimizations, plus a couple other
|
||||
smaller patches. Then started cleaning out workarounds, various dead code, all contrib and example code.<br>
|
||||
The result is a better performing and easier to maintain zlib-ng.
|
||||
|
||||
A lot of improvements have gone into zlib-ng since its start, and numerous people and companies have contributed both
|
||||
small and big improvements, or valuable testing.
|
||||
|
||||
|
||||
Build
|
||||
-----
|
||||
<sup>Please read LICENSE.md, it is very simple and very liberal.</sup>
|
||||
|
||||
There are two ways to build zlib-ng:
|
||||
|
||||
### Cmake
|
||||
|
||||
To build zlib-ng using the cross-platform makefile generator cmake.
|
||||
|
||||
```
|
||||
cmake .
|
||||
cmake --build . --config Release
|
||||
ctest --verbose -C Release
|
||||
```
|
||||
|
||||
Alternatively, you can use the cmake configuration GUI tool ccmake:
|
||||
|
||||
```
|
||||
ccmake .
|
||||
```
|
||||
|
||||
### Configure
|
||||
|
||||
To build zlib-ng using the bash configure script:
|
||||
|
||||
```
|
||||
./configure
|
||||
make
|
||||
make test
|
||||
```
|
||||
|
||||
Build Options
|
||||
-------------
|
||||
|
||||
| CMake | configure | Description | Default |
|
||||
|:---------------------------|:-------------------------|:------------------------------------------------------------------------------------|---------|
|
||||
| ZLIB_COMPAT | --zlib-compat | Compile with zlib compatible API | OFF |
|
||||
| ZLIB_ENABLE_TESTS | | Build test binaries | ON |
|
||||
| WITH_GZFILEOP | --without-gzfileops | Compile with support for gzFile related functions | ON |
|
||||
| WITH_OPTIM | --without-optimizations | Build with optimisations | ON |
|
||||
| WITH_NEW_STRATEGIES | --without-new-strategies | Use new strategies | ON |
|
||||
| WITH_NATIVE_INSTRUCTIONS | | Compiles with full instruction set supported on this host (gcc/clang -march=native) | OFF |
|
||||
| WITH_RUNTIME_CPU_DETECTION | | Compiles with runtime CPU detection | ON |
|
||||
| WITH_SANITIZER | | Build with sanitizer (memory, address, undefined) | OFF |
|
||||
| WITH_GTEST | | Build gtest_zlib | ON |
|
||||
| WITH_FUZZERS | | Build test/fuzz | OFF |
|
||||
| WITH_BENCHMARKS | | Build test/benchmarks | OFF |
|
||||
| WITH_MAINTAINER_WARNINGS | | Build with project maintainer warnings | OFF |
|
||||
| WITH_CODE_COVERAGE | | Enable code coverage reporting | OFF |
|
||||
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
WARNING: We do not recommend manually installing unless you really know what you are doing, because this can
|
||||
potentially override the system default zlib library, and any incompatibility or wrong configuration of zlib-ng
|
||||
can make the whole system unusable, requiring recovery or reinstall.
|
||||
If you still want a manual install, we recommend using the /opt/ path prefix.
|
||||
|
||||
For Linux distros, an alternative way to use zlib-ng (if compiled in zlib-compat mode) instead of zlib, is through
|
||||
the use of the _LD_PRELOAD_ environment variable. If the program is dynamically linked with zlib, then the program
|
||||
will temporarily attempt to use zlib-ng instead, without risking system-wide instability.
|
||||
|
||||
```
|
||||
LD_PRELOAD=/opt/zlib-ng/libz.so.1.2.13.zlib-ng /usr/bin/program
|
||||
```
|
||||
|
||||
### Cmake
|
||||
|
||||
To install zlib-ng system-wide using cmake:
|
||||
|
||||
```sh or powershell
|
||||
cmake --build . --target install
|
||||
```
|
||||
|
||||
### Configure
|
||||
|
||||
To install zlib-ng system-wide using the configure script:
|
||||
|
||||
```sh
|
||||
make install
|
||||
```
|
||||
|
||||
### CPack
|
||||
|
||||
After building with cmake, an installation package can be created using cpack. By default a tgz package is created,
|
||||
but you can append `-G <format>` to each command to generate alternative packages types (TGZ, ZIP, RPM, DEB). To easily
|
||||
create a rpm or deb package, you would use `-G RPM` or `-G DEB` respectively.
|
||||
|
||||
```sh or powershell
|
||||
cd build
|
||||
cpack --config CPackConfig.cmake
|
||||
cpack --config CPackSourceConfig.cmake
|
||||
```
|
||||
|
||||
### Vcpkg
|
||||
|
||||
Alternatively, you can build and install zlib-ng using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
|
||||
|
||||
```sh or powershell
|
||||
git clone https://github.com/Microsoft/vcpkg.git
|
||||
cd vcpkg
|
||||
./bootstrap-vcpkg.sh # "./bootstrap-vcpkg.bat" for powershell
|
||||
./vcpkg integrate install
|
||||
./vcpkg install zlib-ng
|
||||
```
|
||||
|
||||
The zlib-ng port in vcpkg is kept up to date by Microsoft team members and community contributors.
|
||||
If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
Zlib-ng is aiming to be open to contributions, and we would be delighted to receive pull requests on github.
|
||||
Help with testing and reviewing pull requests etc is also very much appreciated.
|
||||
|
||||
Please check the Wiki for more info: [Contributing](https://github.com/zlib-ng/zlib-ng/wiki/Contributing)
|
||||
|
||||
Acknowledgments
|
||||
----------------
|
||||
|
||||
Thanks go out to all the people and companies who have taken the time to contribute
|
||||
code reviews, testing and/or patches. Zlib-ng would not have been nearly as good without you.
|
||||
|
||||
The deflate format used by zlib was defined by Phil Katz.<br>
|
||||
The deflate and zlib specifications were written by L. Peter Deutsch.
|
||||
|
||||
zlib was originally created by Jean-loup Gailly (compression) and Mark Adler (decompression).
|
||||
|
||||
|
||||
Advanced Build Options
|
||||
----------------------
|
||||
|
||||
| CMake | configure | Description | Default |
|
||||
|:--------------------------------|:----------------------|:--------------------------------------------------------------------|------------------------|
|
||||
| FORCE_SSE2 | --force-sse2 | Skip runtime check for SSE2 instructions (Always on for x86_64) | OFF (x86) |
|
||||
| WITH_AVX2 | | Build with AVX2 intrinsics | ON |
|
||||
| WITH_AVX512 | | Build with AVX512 intrinsics | ON |
|
||||
| WITH_AVX512VNNI | | Build with AVX512VNNI intrinsics | ON |
|
||||
| WITH_SSE2 | | Build with SSE2 intrinsics | ON |
|
||||
| WITH_SSSE3 | | Build with SSSE3 intrinsics | ON |
|
||||
| WITH_SSE42 | | Build with SSE42 intrinsics | ON |
|
||||
| WITH_PCLMULQDQ | | Build with PCLMULQDQ intrinsics | ON |
|
||||
| WITH_VPCLMULQDQ | --without-vpclmulqdq | Build with VPCLMULQDQ intrinsics | ON |
|
||||
| WITH_ACLE | --without-acle | Build with ACLE intrinsics | ON |
|
||||
| WITH_NEON | --without-neon | Build with NEON intrinsics | ON |
|
||||
| WITH_ARMV6 | --without-armv6 | Build with ARMv6 intrinsics | ON |
|
||||
| WITH_ALTIVEC | --without-altivec | Build with AltiVec (VMX) intrinsics | ON |
|
||||
| WITH_POWER8 | --without-power8 | Build with POWER8 optimisations | ON |
|
||||
| WITH_RVV | | Build with RVV intrinsics | ON |
|
||||
| WITH_CRC32_VX | --without-crc32-vx | Build with vectorized CRC32 on IBM Z | ON |
|
||||
| WITH_DFLTCC_DEFLATE | --with-dfltcc-deflate | Build with DFLTCC intrinsics for compression on IBM Z | OFF |
|
||||
| WITH_DFLTCC_INFLATE | --with-dfltcc-inflate | Build with DFLTCC intrinsics for decompression on IBM Z | OFF |
|
||||
| WITH_INFLATE_STRICT | | Build with strict inflate distance checking | OFF |
|
||||
| WITH_INFLATE_ALLOW_INVALID_DIST | | Build with zero fill for inflate invalid distances | OFF |
|
||||
| INSTALL_UTILS | | Copy minigzip and minideflate during install | OFF |
|
||||
| ZLIBNG_ENABLE_TESTS | | Test zlib-ng specific API | ON |
|
||||
|
||||
|
||||
Related Projects
|
||||
----------------
|
||||
|
||||
* Fork of the popular minizip https://github.com/zlib-ng/minizip-ng
|
||||
* Python tool to benchmark minigzip/minideflate https://github.com/zlib-ng/deflatebench
|
||||
* Python tool to benchmark pigz https://github.com/zlib-ng/pigzbench
|
||||
* 3rd party patches for zlib-ng compatibility https://github.com/zlib-ng/patches
|
||||
863
curl/dep/zstd/CHANGELOG.txt
Обычный файл
863
curl/dep/zstd/CHANGELOG.txt
Обычный файл
@@ -0,0 +1,863 @@
|
||||
V1.5.7 (Feb 2025)
|
||||
fix: compression bug in 32-bit mode associated with long-lasting sessions
|
||||
api: new method `ZSTD_compressSequencesAndLiterals()` (#4217, #4232)
|
||||
api: `ZSTD_getFrameHeader()` works on skippable frames (#4228)
|
||||
perf: substantial compression speed improvements (up to +30%) on small data, by @TocarIP (#4144) and @cyan4973 (#4165)
|
||||
perf: improved compression speed (~+5%) for dictionary compression at low levels (#4170)
|
||||
perf: much faster speed for `--patch-from` at high compression levels (#4276)
|
||||
perf: higher `--patch-from` compression ratios, notably at high levels (#4288)
|
||||
perf: better speed for binaries on Windows (@pps83) and when compiled with Visual Studio (@MessyHack)
|
||||
perf: slight compression ratio improvement thanks to better block boundaries (#4136, #4176, #4178)
|
||||
perf: slight compression ratio improvement for `dfast`, aka levels 3 and 4 (#4171)
|
||||
perf: runtime bmi2 detection enabled on x86 32-bit mode (#4251)
|
||||
cli: multi-threading as default CLI setting, by @daniellerozenblit
|
||||
cli: new `--max` command (#4290)
|
||||
build: improve `msbuild` version autodetection, support VS2022, by @ManuelBlanc
|
||||
build: fix `meson` build by @artem and @Victor-C-Zhang, and on Windows by @bgilbert
|
||||
build: compatibility with Apple Framework, by @Treata11
|
||||
build: improve icc/icx compatibility, by @josepho0918 and @luau-project
|
||||
build: improve compatibility with Android NDK, by Adenilson Cavalcanti
|
||||
portability: linux kernel branch, with improved support for Sequence producers (@embg, @gcabiddu, @cyan4973)
|
||||
portability: improved qnx compatibility, suggested by @rainbowball
|
||||
portability: improved install script for FreeBSD, by @sunpoet
|
||||
portability: fixed test suite compatibility with gnu hurd, by @diegonc
|
||||
doc: clarify specification, by @elasota
|
||||
misc: improved tests/decodecorpus validation tool (#4102), by antmicro
|
||||
|
||||
V1.5.6 (Mar 2024)
|
||||
api: Promote `ZSTD_c_targetCBlockSize` to Stable API by @felixhandte
|
||||
api: new `ZSTD_d_maxBlockSize` experimental parameter, to reduce streaming decompression memory, by @terrelln
|
||||
perf: improve performance of param `ZSTD_c_targetCBlockSize`, by @Cyan4973
|
||||
perf: improved compression of arrays of integers at high compression, by @Cyan4973
|
||||
lib: reduce binary size with selective build-time exclusion, by @felixhandte
|
||||
lib: improved huffman speed on small data and linux kernel, by @terrelln
|
||||
lib: accept dictionaries with partial literal tables, by @terrelln
|
||||
lib: fix CCtx size estimation with external sequence producer, by @embg
|
||||
lib: fix corner case decoder behaviors, by @Cyan4973 and @aimuz
|
||||
lib: fix zdict prototype mismatch in static_only mode, by @ldv-alt
|
||||
lib: fix several bugs in magicless-format decoding, by @embg
|
||||
cli: add common compressed file types to `--exclude-compressed`` by @daniellerozenblit
|
||||
cli: fix mixing `-c` and `-o` commands with `--rm`, by @Cyan4973
|
||||
cli: fix erroneous exclusion of hidden files with `--output-dir-mirror` by @felixhandte
|
||||
cli: improved time accuracy on BSD, by @felixhandte
|
||||
cli: better errors on argument parsing, by @KapJI
|
||||
tests: better compatibility with older versions of `grep`, by @Cyan4973
|
||||
tests: lorem ipsum generator as default backup content, by @Cyan4973
|
||||
build: cmake improvements by @terrelln, @sighingnow, @gjasny, @JohanMabille, @Saverio976, @gruenich, @teo-tsirpanis
|
||||
build: bazel support, by @jondo2010
|
||||
build: fix cross-compiling for AArch64 with lld by @jcelerier
|
||||
build: fix Apple platform compatibility, by @nidhijaju
|
||||
build: fix Visual 2012 and lower compatibility, by @Cyan4973
|
||||
build: improve win32 support, by @DimitriPapadopoulos
|
||||
build: better C90 compliance for zlibWrapper, by @emaste
|
||||
port: make: fat binaries on macos, by @mredig
|
||||
port: ARM64EC compatibility for Windows, by @dunhor
|
||||
port: QNX support by @klausholstjacobsen
|
||||
port: MSYS2 and Cygwin makefile installation and test support, by @QBos07
|
||||
port: risc-v support validation in CI, by @Cyan4973
|
||||
port: sparc64 support validation in CI, by @Cyan4973
|
||||
port: AIX compatibility, by @likema
|
||||
port: HP-UX compatibility, by @likema
|
||||
doc: Improved specification accuracy, by @elasota
|
||||
bug: Fix and deprecate ZSTD_generateSequences (#3981)
|
||||
|
||||
v1.5.5 (Apr 2023)
|
||||
fix: fix rare corruption bug affecting the high compression mode, reported by @danlark1 (#3517, @terrelln)
|
||||
perf: improve mid-level compression speed (#3529, #3533, #3543, @yoniko and #3552, @terrelln)
|
||||
lib: deprecated bufferless block-level API (#3534) by @terrelln
|
||||
cli: mmap large dictionaries to save memory, by @daniellerozenblit
|
||||
cli: improve speed of --patch-from mode (~+50%) (#3545) by @daniellerozenblit
|
||||
cli: improve i/o speed (~+10%) when processing lots of small files (#3479) by @felixhandte
|
||||
cli: zstd no longer crashes when requested to write into write-protected directory (#3541) by @felixhandte
|
||||
cli: fix decompression into block device using -o, reported by @georgmu (#3583)
|
||||
build: fix zstd CLI compiled with lzma support but not zlib support (#3494) by @Hello71
|
||||
build: fix cmake does no longer require 3.18 as minimum version (#3510) by @kou
|
||||
build: fix MSVC+ClangCL linking issue (#3569) by @tru
|
||||
build: fix zstd-dll, version of zstd CLI that links to the dynamic library (#3496) by @yoniko
|
||||
build: fix MSVC warnings (#3495) by @embg
|
||||
doc: updated zstd specification to clarify corner cases, by @Cyan4973
|
||||
doc: document how to create fat binaries for macos (#3568) by @rickmark
|
||||
misc: improve seekable format ingestion speed (~+100%) for very small chunk sizes (#3544) by @Cyan4973
|
||||
misc: tests/fullbench can benchmark multiple files (#3516) by @dloidolt
|
||||
|
||||
v1.5.4 (Feb 2023)
|
||||
perf: +20% faster huffman decompression for targets that can't compile x64 assembly (#3449, @terrelln)
|
||||
perf: up to +10% faster streaming compression at levels 1-2 (#3114, @embg)
|
||||
perf: +4-13% for levels 5-12 by optimizing function generation (#3295, @terrelln)
|
||||
pref: +3-11% compression speed for `arm` target (#3199, #3164, #3145, #3141, #3138, @JunHe77 and #3139, #3160, @danlark1)
|
||||
perf: +5-30% faster dictionary compression at levels 1-4 (#3086, #3114, #3152, @embg)
|
||||
perf: +10-20% cold dict compression speed by prefetching CDict tables (#3177, @embg)
|
||||
perf: +1% faster compression by removing a branch in ZSTD_fast_noDict (#3129, @felixhandte)
|
||||
perf: Small compression ratio improvements in high compression mode (#2983, #3391, @Cyan4973 and #3285, #3302, @daniellerozenblit)
|
||||
perf: small speed improvement by better detecting `STATIC_BMI2` for `clang` (#3080, @TocarIP)
|
||||
perf: Improved streaming performance when `ZSTD_c_stableInBuffer` is set (#2974, @Cyan4973)
|
||||
cli: Asynchronous I/O for improved cli speed (#2975, #2985, #3021, #3022, @yoniko)
|
||||
cli: Change `zstdless` behavior to align with `zless` (#2909, @binhdvo)
|
||||
cli: Keep original file if `-c` or `--stdout` is given (#3052, @dirkmueller)
|
||||
cli: Keep original files when result is concatenated into a single output with `-o` (#3450, @Cyan4973)
|
||||
cli: Preserve Permissions and Ownership of regular files (#3432, @felixhandte)
|
||||
cli: Print zlib/lz4/lzma library versions with `-vv` (#3030, @terrelln)
|
||||
cli: Print checksum value for single frame files with `-lv` (#3332, @Cyan4973)
|
||||
cli: Print `dictID` when present with `-lv` (#3184, @htnhan)
|
||||
cli: when `stderr` is *not* the console, disable status updates, but preserve final summary (#3458, @Cyan4973)
|
||||
cli: support `--best` and `--no-name` in `gzip` compatibility mode (#3059, @dirkmueller)
|
||||
cli: support for `posix` high resolution timer `clock_gettime()`, for improved benchmark accuracy (#3423, @Cyan4973)
|
||||
cli: improved help/usage (`-h`, `-H`) formatting (#3094, @dirkmueller and #3385, @jonpalmisc)
|
||||
cli: Fix better handling of bogus numeric values (#3268, @ctkhanhly)
|
||||
cli: Fix input consists of multiple files _and_ `stdin` (#3222, @yoniko)
|
||||
cli: Fix tiny files passthrough (#3215, @cgbur)
|
||||
cli: Fix for `-r` on empty directory (#3027, @brailovich)
|
||||
cli: Fix empty string as argument for `--output-dir-*` (#3220, @embg)
|
||||
cli: Fix decompression memory usage reported by `-vv --long` (#3042, @u1f35c, and #3232, @zengyijing)
|
||||
cli: Fix infinite loop when empty input is passed to trainer (#3081, @terrelln)
|
||||
cli: Fix `--adapt` doesn't work when `--no-progress` is also set (#3354, @terrelln)
|
||||
api: Support for Block-Level Sequence Producer (#3333, @embg)
|
||||
api: Support for in-place decompression (#3432, @terrelln)
|
||||
api: New `ZSTD_CCtx_setCParams()` function, set all parameters defined in a `ZSTD_compressionParameters` structure (#3403, @Cyan4973)
|
||||
api: Streaming decompression detects incorrect header ID sooner (#3175, @Cyan4973)
|
||||
api: Window size resizing optimization for edge case (#3345, @daniellerozenblit)
|
||||
api: More accurate error codes for busy-loop scenarios (#3413, #3455, @Cyan4973)
|
||||
api: Fix limit overflow in `compressBound` and `decompressBound` (#3362, #3373, Cyan4973) reported by @nigeltao
|
||||
api: Deprecate several advanced experimental functions: streaming (#3408, @embg), copy (#3196, @mileshu)
|
||||
bug: Fix corruption that rarely occurs in 32-bit mode with wlog=25 (#3361, @terrelln)
|
||||
bug: Fix for block-splitter (#3033, @Cyan4973)
|
||||
bug: Fixes for Sequence Compression API (#3023, #3040, @Cyan4973)
|
||||
bug: Fix leaking thread handles on Windows (#3147, @animalize)
|
||||
bug: Fix timing issues with cmake/meson builds (#3166, #3167, #3170, @Cyan4973)
|
||||
build: Allow user to select legacy level for cmake (#3050, @shadchin)
|
||||
build: Enable legacy support by default in cmake (#3079, @niamster)
|
||||
build: Meson build script improvements (#3039, #3120, #3122, #3327, #3357, @eli-schwartz and #3276, @neheb)
|
||||
build: Add aarch64 to supported architectures for zstd_trace (#3054, @ooosssososos)
|
||||
build: support AIX architecture (#3219, @qiongsiwu)
|
||||
build: Fix `ZSTD_LIB_MINIFY` build macro, which now reduces static library size by half (#3366, @terrelln)
|
||||
build: Fix Windows issues with Multithreading translation layer (#3364, #3380, @yoniko) and ARM64 target (#3320, @cwoffenden)
|
||||
build: Fix `cmake` script (#3382, #3392, @terrelln and #3252 @Tachi107 and #3167 @Cyan4973)
|
||||
doc: Updated man page, providing more details for `--train` mode (#3112, @Cyan4973)
|
||||
doc: Add decompressor errata document (#3092, @terrelln)
|
||||
misc: Enable Intel CET (#2992, #2994, @hjl-tools)
|
||||
misc: Fix `contrib/` seekable format (#3058, @yhoogstrate and #3346, @daniellerozenblit)
|
||||
misc: Improve speed of the one-file library generator (#3241, @wahern and #3005, @cwoffenden)
|
||||
|
||||
v1.5.3 (dev version, unpublished)
|
||||
|
||||
v1.5.2 (Jan, 2022)
|
||||
perf: Regain Minimal memset()-ing During Reuse of Compression Contexts (@Cyan4973, #2969)
|
||||
build: Build Zstd with `noexecstack` on All Architectures (@felixhandte, #2964)
|
||||
doc: Clarify Licensing (@terrelln, #2981)
|
||||
|
||||
v1.5.1 (Dec, 2021)
|
||||
perf: rebalanced compression levels, to better match the intended speed/level curve, by @senhuang42
|
||||
perf: faster huffman decoder, using x64 assembly, by @terrelln
|
||||
perf: slightly faster high speed modes (strategies fast & dfast), by @felixhandte
|
||||
perf: improved binary size and faster compilation times, by @terrelln
|
||||
perf: new row64 mode, used notably in level 12, by @senhuang42
|
||||
perf: faster mid-level compression speed in presence of highly repetitive patterns, by @senhuang42
|
||||
perf: minor compression ratio improvements for small data at high levels, by @cyan4973
|
||||
perf: reduced stack usage (mostly useful for Linux Kernel), by @terrelln
|
||||
perf: faster compression speed on incompressible data, by @bindhvo
|
||||
perf: on-demand reduced ZSTD_DCtx state size, using build macro ZSTD_DECODER_INTERNAL_BUFFER, at a small cost of performance, by @bindhvo
|
||||
build: allows hiding static symbols in the dynamic library, using build macro, by @skitt
|
||||
build: support for m68k (Motorola 68000's), by @cyan4973
|
||||
build: improved AIX support, by @Helflym
|
||||
build: improved meson unofficial build, by @eli-schwartz
|
||||
cli : custom memory limit when training dictionary (#2925), by @embg
|
||||
cli : report advanced parameters information when compressing in very verbose mode (`-vv`), by @Svetlitski-FB
|
||||
|
||||
v1.5.0 (May 11, 2021)
|
||||
api: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42)
|
||||
`ZSTD_defaultCLevel()`
|
||||
`ZSTD_getDictID_fromCDict()`
|
||||
api: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42)
|
||||
`ZSTD_compress_advanced()`
|
||||
`ZSTD_compress_usingCDict_advanced()`
|
||||
`ZSTD_compressBegin_advanced()`
|
||||
`ZSTD_compressBegin_usingCDict_advanced()`
|
||||
`ZSTD_initCStream_srcSize()`
|
||||
`ZSTD_initCStream_usingDict()`
|
||||
`ZSTD_initCStream_usingCDict()`
|
||||
`ZSTD_initCStream_advanced()`
|
||||
`ZSTD_initCStream_usingCDict_advanced()`
|
||||
`ZSTD_resetCStream()`
|
||||
api: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973)
|
||||
perf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln)
|
||||
perf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42)
|
||||
perf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614 #2630, @Cyan4973)
|
||||
perf: Reduced stack usage during compression and decompression entropy stage (#2522 #2524, @terrelln)
|
||||
bug: Improve setting permissions of created files (#2525, @felixhandte)
|
||||
bug: Fix large dictionary non-determinism (#2607, @terrelln)
|
||||
bug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln)
|
||||
bug: Fix various dedicated dictionary search bugs (#2540 #2586, @senhuang42 @felixhandte)
|
||||
bug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42)
|
||||
bug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink)
|
||||
bug: Fix UBSAN error in decompression (#2625, @terrelln)
|
||||
bug: Fix superblock compression divide by zero bug (#2592, @senhuang42)
|
||||
bug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone)
|
||||
doc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln)
|
||||
doc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize)
|
||||
doc: Add style guide docs for open source contributors (#2626, @Cyan4973)
|
||||
tests: Better regression test coverage for different dictionary modes (#2559, @senhuang42)
|
||||
tests: Better test coverage of index reduction (#2603, @terrelln)
|
||||
tests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42)
|
||||
tests: Test coverage for ZSTD threadpool API (#2604, @senhuang42)
|
||||
build: Dynamic library built multithreaded by default (#2584, @senhuang42)
|
||||
build: Move `zstd_errors.h` and `zdict.h` to `lib/` root (#2597, @terrelln)
|
||||
build: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973)
|
||||
build: Single file library build script moved to `build/` directory (#2618, @felixhandte)
|
||||
build: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42)
|
||||
build: Fixed Meson build (#2548, @SupervisedThinking @kloczek)
|
||||
build: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson)
|
||||
build: Detect presence of `md5` on Darwin (#2609, @felixhandte)
|
||||
build: Avoid SIGBUS on armv6 (#2633, @bmwiedmann)
|
||||
cli: `--progress` flag added to always display progress bar (#2595, @senhuang42)
|
||||
cli: Allow reading from block devices with `--force` (#2613, @felixhandte)
|
||||
cli: Fix CLI filesize display bug (#2550, @Cyan4973)
|
||||
cli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973)
|
||||
contrib: Various fixes for linux kernel patch (#2539, @terrelln)
|
||||
contrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42)
|
||||
contrib: Seekable format - New seek table-only API (#2113 #2518, @mdittmer @Cyan4973)
|
||||
contrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng)
|
||||
contrib: Seekable format - Decompression fix for large offsets, (#2594, @azat)
|
||||
misc: Automatically published release tarballs available on Github (#2535, @felixhandte)
|
||||
|
||||
v1.4.9 (Mar 1, 2021)
|
||||
bug: Use `umask()` to Constrain Created File Permissions (#2495, @felixhandte)
|
||||
bug: Make Simple Single-Pass Functions Ignore Advanced Parameters (#2498, @terrelln)
|
||||
api: Add (De)Compression Tracing Functionality (#2482, @terrelln)
|
||||
api: Support References to Multiple DDicts (#2446, @senhuang42)
|
||||
api: Add Function to Generate Skippable Frame (#2439, @senhuang42)
|
||||
perf: New Algorithms for the Long Distance Matcher (#2483, @mpu)
|
||||
perf: Performance Improvements for Long Distance Matcher (#2464, @mpu)
|
||||
perf: Don't Shrink Window Log when Streaming with a Dictionary (#2451, @terrelln)
|
||||
cli: Fix `--output-dir-mirror` rejection of `..` -containing paths (#2512, @felixhandte)
|
||||
cli: Allow Input From Console When `-f`/`--force` is Passed (#2466, @felixhandte)
|
||||
cli: Improve Help Message (#2500, @senhuang42)
|
||||
tests: Remove Flaky Tests (#2455, #2486, #2445, @Cyan4973)
|
||||
tests: Correctly Invoke md5 Utility on NetBSD (#2492, @niacat)
|
||||
tests: Avoid Using `stat -c` on NetBSD (#2513, @felixhandte)
|
||||
build: Zstd CLI Can Now be Linked to Dynamic `libzstd` (#2457, #2454 @Cyan4973)
|
||||
build: Hide and Avoid Using Static-Only Symbols (#2501, #2504, @skitt)
|
||||
build: CMake: Enable Only C for lib/ and programs/ Projects (#2498, @concatime)
|
||||
build: CMake: Use `configure_file()` to Create the `.pc` File (#2462, @lazka)
|
||||
build: Fix Fuzzer Compiler Detection & Update UBSAN Flags (#2503, @terrelln)
|
||||
build: Add Guards for `_LARGEFILE_SOURCE` and `_LARGEFILE64_SOURCE` (#2444, @indygreg)
|
||||
build: Improve `zlibwrapper` Makefile (#2437, @Cyan4973)
|
||||
contrib: Add `recover_directory` Program (#2473, @terrelln)
|
||||
doc: Change License Year to 2021 (#2452 & #2465, @terrelln & @senhuang42)
|
||||
doc: Fix Typos (#2459, @ThomasWaldmann)
|
||||
|
||||
v1.4.8 (Dec 18, 2020)
|
||||
hotfix: wrong alignment of an internal buffer
|
||||
|
||||
v1.4.7 (Dec 16, 2020)
|
||||
perf: stronger --long mode at high compression levels, by @senhuang42
|
||||
perf: stronger --patch-from at high compression levels, thanks to --long improvements
|
||||
perf: faster dictionary compression at medium compression levels, by @felixhandte
|
||||
perf: small speed & memory usage improvements for ZSTD_compress2(), by @terrelln
|
||||
perf: improved fast compression speeds with Visual Studio, by @animalize
|
||||
cli : Set nb of threads with environment variable ZSTD_NBTHREADS, by @senhuang42
|
||||
cli : accept decompressing files with *.zstd suffix
|
||||
cli : provide a condensed summary by default when processing multiple files
|
||||
cli : fix : stdin input no longer confused as user prompt
|
||||
cli : improve accuracy of several error messages
|
||||
api : new sequence ingestion API, by @senhuang42
|
||||
api : shared thread pool: control total nb of threads used by multiple compression jobs, by @marxin
|
||||
api : new ZSTD_getDictID_fromCDict(), by @LuAPi
|
||||
api : zlibWrapper only uses public API, and is compatible with dynamic library, by @terrelln
|
||||
api : fix : multithreaded compression has predictable output even in special cases (see #2327) (issue not accessible from cli)
|
||||
api : fix : dictionary compression correctly respects dictionary compression level (see #2303) (issue not accessible from cli)
|
||||
build: fix cmake script when using path with spaces, by @terrelln
|
||||
build: improved compile-time detection of aarch64/neon platforms, by @bsdimp
|
||||
build: Fix building on AIX 5.1, by @likema
|
||||
build: compile paramgrill with cmake on Windows, requested by @mirh
|
||||
doc : clarify repcode updates in format specification, by @felixhandte
|
||||
|
||||
v1.4.6
|
||||
fix : Always return dstSize_tooSmall when that is the case
|
||||
fix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary
|
||||
perf: Improve small block decompression speed by 20%+, by @terrelln
|
||||
perf: Reduce compression stack usage by 1 KB, by @terrelln
|
||||
perf: Improve decompression speed by improving ZSTD_wildcopy, by @helloguo (#2252, #2256)
|
||||
perf: Improve histogram construction, by @cyan4973 (#2253)
|
||||
cli : Add --output-dir-mirror option, by @xxie24 (#2219)
|
||||
cli : Warn when (de)compressing multiple files into a single output, by @senhuang42 (#2279)
|
||||
cli : Improved progress bar and status summary when (de)compressing multiple files, by @senhuang42 (#2283)
|
||||
cli : Call stat less often, by @felixhandte (#2262)
|
||||
cli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX, by @cyan4973 (#2250)
|
||||
cli : Allow --patch-from to compress stdin with --stream-size, by @bimbashrestha (#2206)
|
||||
api : Do not install zbuff.h, since it has long been deprecated, by @cyan4973 (#2166).
|
||||
api : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level, by @i-do-cpp (#2291)
|
||||
api : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX, by @marxin (#2228).
|
||||
build: Install pkg-config file with CMake and MinGW, by @tonytheodore (#2183)
|
||||
build: Install DLL with CMake on Windows, by @BioDataAnalysis (#2221)
|
||||
build: Fix DLL install location with CMake, by @xantares and @bimbashrestha (#2186)
|
||||
build: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions
|
||||
build: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics
|
||||
build: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC, by @Niadb (#2258)
|
||||
build: Fix -Wcomma warnings, by @cwoffenden
|
||||
build: Remove distutils requirement for meson build, by @neheb (#2197)
|
||||
build: Fix cli compilation with uclibc
|
||||
build: Fix cli compilation without st_mtime, by @ffontaine (#2246)
|
||||
build: Fix shadowing warnings in library
|
||||
build: Fix single file library compilation with Enscripten, by @yoshihitoh (#2227)
|
||||
misc: Improve single file library and include dictBuilder, by @cwoffenden
|
||||
misc: Allow compression dictionaries with missing symbols
|
||||
misc: Add freestanding translation script in contrib/freestanding_lib
|
||||
misc: Collect all of zstd's libc dependencies into zstd_deps.h
|
||||
doc : Add ZSTD_versionString() to manual, by @animalize
|
||||
doc : Fix documentation for ZSTD_CCtxParams_setParameter(), by @felixhandte (#2270)
|
||||
|
||||
v1.4.5 (May 22, 2020)
|
||||
fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
|
||||
perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln
|
||||
perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta)
|
||||
perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh)
|
||||
perf: Small level 1 compression speed gains (depending on compiler)
|
||||
cli : New --patch-from command, create and apply patches from files, by @bimbashreshta
|
||||
cli : New --filelist= : Provide a list of files to operate upon from a file
|
||||
cli : -b -d command can now benchmark decompression on multiple files
|
||||
cli : New --no-content-size command
|
||||
cli : New --show-default-cparams information command
|
||||
api : ZDICT_finalizeDictionary() is promoted to stable (#2111)
|
||||
api : new experimental parameter ZSTD_d_stableOutBuffer (#2094)
|
||||
build: Generate a single-file libzstd library (#2065, by @cwoffenden)
|
||||
build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte)
|
||||
build: zstd now compiles cleanly under -pedantic (#2099)
|
||||
build: zstd now compiles with make-4.3
|
||||
build: Support mingw cross-compilation from Linux, by @Ericson2314
|
||||
build: Meson multi-thread build fix on windows
|
||||
build: Some misc icc fixes backed by new ci test on travis
|
||||
misc: bitflip analyzer tool, by @felixhandte
|
||||
misc: Extend largeNbDicts benchmark to compression
|
||||
misc: Edit-distance match finder in contrib/
|
||||
doc : Improved beginner CONTRIBUTING.md docs
|
||||
doc : New issue templates for zstd
|
||||
|
||||
v1.4.4 (Nov 6, 2019)
|
||||
perf: Improved decompression speed, by > 10%, by @terrelln
|
||||
perf: Better compression speed when re-using a context, by @felixhandte
|
||||
perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
|
||||
perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
|
||||
perf: minor generic speed optimization, by @davidbolvansky
|
||||
api: new ability to extract sequences from the parser for analysis, by @bimbashrestha
|
||||
api: fixed decoding of magic-less frames, by @terrelln
|
||||
api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
|
||||
cli: Named pipes support, by @bimbashrestha
|
||||
cli: short tar's extension support, by @stokito
|
||||
cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
|
||||
cli: commands --stream-size=# and --size-hint=#, by @nmagerko
|
||||
cli: command --exclude-compressed, by @shashank0791
|
||||
cli: faster `-t` test mode
|
||||
cli: improved some error messages, by @vangyzen
|
||||
cli: fix command `-D dictionary` on Windows, reported by @artyompetrov
|
||||
cli: fix rare deadlock condition within dictionary builder, by @terrelln
|
||||
build: single-file decoder with emscripten compilation script, by @cwoffenden
|
||||
build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
|
||||
build: fixed deprecation warning for certain gcc version, reported by @jasonma163
|
||||
build: fix compilation on old gcc versions, by @cemeyer
|
||||
build: improved installation directories for cmake script, by Dmitri Shubin
|
||||
pack: modified pkgconfig, for better integration into openwrt, requested by @neheb
|
||||
misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
|
||||
misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
|
||||
|
||||
v1.4.3 (Aug 20, 2019)
|
||||
bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
|
||||
bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
|
||||
build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
|
||||
|
||||
v1.4.2 (Jul 26, 2019)
|
||||
bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
|
||||
bug: Fix seekable decompression in-memory API by @iburinoc (#1695)
|
||||
misc: Validate blocks are smaller than size limit by @vivekmg (#1685)
|
||||
misc: Restructure source files by @ephiepark (#1679)
|
||||
|
||||
v1.4.1 (Jul 20, 2019)
|
||||
bug: Fix data corruption in niche use cases by @terrelln (#1659)
|
||||
bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
|
||||
bug: Fix out of bounds read by @terrelln (#1590)
|
||||
perf: Improve decode speed by ~7% @mgrice (#1668)
|
||||
perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
|
||||
perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
|
||||
perf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
|
||||
perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
|
||||
api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
|
||||
cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
|
||||
cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
|
||||
cli: Restrict read permissions on destination files by @chungy (#1644)
|
||||
cli: zstdgrep: handle -f flag by @felixhandte (#1618)
|
||||
cli: zstdcat: follow symlinks by @vejnar (#1604)
|
||||
doc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
|
||||
doc: Fix typo by @yk-tanigawa (#1633)
|
||||
doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
|
||||
build: CMake: support building with LZ4 @leeyoung624 (#1626)
|
||||
build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
|
||||
build: CMake: respect existing uninstall target by @j301scott (#1619)
|
||||
build: Make: skip multithread tests when built without support by @michaelforney (#1620)
|
||||
build: Make: Fix examples/ test target by @sjnam (#1603)
|
||||
build: Meson: rename options out of deprecated namespace by @lzutao (#1665)
|
||||
build: Meson: fix build by @lzutao (#1602)
|
||||
build: Visual Studio: don't export symbols in static lib by @scharan (#1650)
|
||||
build: Visual Studio: fix linking by @absotively (#1639)
|
||||
build: Fix MinGW-W64 build by @myzhang1029 (#1600)
|
||||
misc: Expand decodecorpus coverage by @ephiepark (#1664)
|
||||
|
||||
v1.4.0 (Apr 17, 2019)
|
||||
perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
|
||||
api: Move the advanced API, including all functions in the staging section, to the stable section
|
||||
api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
|
||||
api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
|
||||
api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
|
||||
api: Don't export ZSTDMT functions from the shared library by default
|
||||
api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
|
||||
api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
|
||||
api: Fix ZSTD_decompressDCtx() corner cases with a dictionary
|
||||
api: Move ZSTD_getDictID_*() functions to the stable section
|
||||
api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
|
||||
api: Allow compression parameters to be set when a dictionary is used
|
||||
api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
|
||||
api: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
|
||||
api: Setting ZSTD_d_maxWindowLog to 0 means use the default
|
||||
cli: Ensure that a dictionary is not used to compress itself by @shakeelrao
|
||||
cli: Add --[no-]compress-literals flag to enable or disable literal compression
|
||||
doc: Update the examples to use the advanced API
|
||||
doc: Explain how to transition from old streaming functions to the advanced API in the header
|
||||
build: Improve the Windows release packages
|
||||
build: Improve CMake build by @hjmjohnson
|
||||
build: Build fixes for FreeBSD by @lwhsu
|
||||
build: Remove redundant warnings by @thatsafunnyname
|
||||
build: Fix tests on OpenBSD by @bket
|
||||
build: Extend fuzzer build system to work with the new clang engine
|
||||
build: CMake now creates the libzstd.so.1 symlink
|
||||
build: Improve Menson build by @lzutao
|
||||
misc: Fix symbolic link detection on FreeBSD
|
||||
misc: Use physical core count for -T0 on FreeBSD by @cemeyer
|
||||
misc: Fix zstd --list on truncated files by @kostmo
|
||||
misc: Improve logging in debug mode by @felixhandte
|
||||
misc: Add CirrusCI tests by @lwhsu
|
||||
misc: Optimize dictionary memory usage in corner cases
|
||||
misc: Improve the dictionary builder on small or homogeneous data
|
||||
misc: Fix spelling across the repo by @jsoref
|
||||
|
||||
v1.3.8 (Dec 28, 2018)
|
||||
perf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
|
||||
perf: slightly better compression ratio at high compression modes
|
||||
api : finalized advanced API, last stage before "stable" status
|
||||
api : new --rsyncable mode, by @terrelln
|
||||
api : support decompression of empty frames into NULL (used to be an error) (#1385)
|
||||
build: new set of macros to build a minimal size decoder, by @felixhandte
|
||||
build: fix compilation on MIPS32, reported by @clbr (#1441)
|
||||
build: fix compilation with multiple -arch flags, by @ryandesign
|
||||
build: highly upgraded meson build, by @lzutao
|
||||
build: improved buck support, by @obelisk
|
||||
build: fix cmake script : can create debug build, by @pitrou
|
||||
build: Makefile : grep works on both colored consoles and systems without color support
|
||||
build: fixed zstd-pgo, by @bmwiedemann
|
||||
cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
|
||||
cli : --no-progress flag, preserving final summary (#1371), by @terrelln
|
||||
cli : ensure destination file is not source file (#1422)
|
||||
cli : clearer error messages, especially when input file not present
|
||||
doc : clarified zstd_compression_format.md, by @ulikunitz
|
||||
misc: fixed zstdgrep, returns 1 on failure, by @lzutao
|
||||
misc: NEWS renamed as CHANGELOG, in accordance with fboss
|
||||
|
||||
v1.3.7 (Oct 20, 2018)
|
||||
perf: slightly better decompression speed on clang (depending on hardware target)
|
||||
fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
|
||||
build: no longer build backtrace by default in release mode; restrict further automatic mode
|
||||
build: control backtrace support through build macro BACKTRACE
|
||||
misc: added man pages for zstdless and zstdgrep, by @samrussell
|
||||
|
||||
v1.3.6 (Oct 6, 2018)
|
||||
perf: much faster dictionary builder, by @jenniferliu
|
||||
perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
|
||||
perf: faster dictionary decompression when using a very large number of dictionaries simultaneously
|
||||
cli : fix : does no longer overwrite destination when source does not exist (#1082)
|
||||
cli : new command --adapt, for automatic compression level adaptation
|
||||
api : fix : block api can be streamed with > 4 GB, reported by @catid
|
||||
api : reduced ZSTD_DDict size by 2 KB
|
||||
api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
|
||||
build: support Haiku target, by @korli
|
||||
build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
|
||||
doc : zstd_compression_format.md updated to match wording in IETF RFC 8478
|
||||
misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
|
||||
|
||||
v1.3.5 (Jun 29, 2018)
|
||||
perf: much faster dictionary compression, by @felixhandte
|
||||
perf: small quality improvement for dictionary generation, by @terrelln
|
||||
perf: slightly improved high compression levels (notably level 19)
|
||||
mem : automatic memory release for long duration contexts
|
||||
cli : fix : overlapLog can be manually set
|
||||
cli : fix : decoding invalid lz4 frames
|
||||
api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
|
||||
api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
|
||||
build: select custom libzstd scope through control macros, by @GeorgeLu97
|
||||
build: OpenBSD patch, by @bket
|
||||
build: make and make all are compatible with -j
|
||||
doc : clarify zstd_compression_format.md, updated for IETF RFC process
|
||||
misc: pzstd compatible with reproducible compilation, by @lamby
|
||||
|
||||
v1.3.4 (Mar 27, 2018)
|
||||
perf: faster speed (especially decoding speed) on recent cpus (haswell+)
|
||||
perf: much better performance associating --long with multi-threading, by @terrelln
|
||||
perf: better compression at levels 13-15
|
||||
cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
|
||||
cli : smoother status report in multi-threading mode
|
||||
cli : added command --fast=#, for faster compression modes
|
||||
cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
|
||||
api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
|
||||
api : compression levels can be negative, for even more speed
|
||||
api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
|
||||
api : ZSTDMT can accept new compression parameters during compression
|
||||
api : implemented all advanced dictionary decompression prototypes
|
||||
build: improved meson recipe, by Shawn Landden (@shawnl)
|
||||
build: VS2017 scripts, by @HaydnTrigg
|
||||
misc: all /contrib projects fixed
|
||||
misc: added /contrib/docker script by @gyscos
|
||||
|
||||
v1.3.3 (Dec 21, 2017)
|
||||
perf: faster zstd_opt strategy (levels 16-19)
|
||||
fix : bug #944 : multithreading with shared dictionary and large data, reported by @gsliepen
|
||||
cli : fix : content size written in header by default
|
||||
cli : fix : improved LZ4 format support, by @felixhandte
|
||||
cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
|
||||
api : fix : support large skippable frames, by @terrelln
|
||||
api : fix : streaming interface was adding a useless 3-bytes null block to small frames
|
||||
api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
|
||||
build: fix : compilation under rhel6 and centos6, reported by @pixelb
|
||||
build: added `check` target
|
||||
|
||||
v1.3.2 (Oct 10, 2017)
|
||||
new : long range mode, using --long command, by Stella Lau (@stellamplau)
|
||||
new : ability to generate and decode magicless frames (#591)
|
||||
changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
|
||||
fix : multi-threading compression works with custom allocators
|
||||
fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
|
||||
fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
|
||||
fix : 32-bits build can now decode large offsets (levels 21+)
|
||||
cli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
|
||||
cli : improved --list output
|
||||
cli : new : can split input file for dictionary training, using command -B#
|
||||
cli : new : clean operation artefact on Ctrl-C interruption
|
||||
cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
|
||||
cli : fix : write file size in header in multiple-files mode
|
||||
api : added macro ZSTD_COMPRESSBOUND() for static allocation
|
||||
api : experimental : new advanced decompression API
|
||||
api : fix : sizeof_CCtx() used to over-estimate
|
||||
build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
|
||||
build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
|
||||
example : added streaming_memory_usage
|
||||
license : changed /examples license to BSD + GPLv2
|
||||
license : fix a few header files to reflect new license (#825)
|
||||
|
||||
v1.3.1 (Aug 21, 2017)
|
||||
New license : BSD + GPLv2
|
||||
perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
|
||||
perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
|
||||
cli : improved and fixed --list command, by @ib (#772)
|
||||
cli : command -vV to list supported formats, by @ib (#771)
|
||||
build : fixed binary variants, reported by @svenha (#788)
|
||||
build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
|
||||
API exp : breaking change : ZSTD_getframeHeader() provides more information
|
||||
API exp : breaking change : pinned down values of error codes
|
||||
doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
|
||||
new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
|
||||
new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
|
||||
updated : contrib/linux-kernel, by Nick Terrell (@terrelln)
|
||||
|
||||
v1.3.0 (Jul 6, 2017)
|
||||
cli : new : `--list` command, by Paul Cruz
|
||||
cli : changed : xz/lzma support enabled by default
|
||||
cli : changed : `-t *` continue processing list after a decompression error
|
||||
API : added : ZSTD_versionString()
|
||||
API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
|
||||
API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
|
||||
API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
|
||||
API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
|
||||
API exp : clarified memory estimation / measurement functions.
|
||||
API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
|
||||
tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
|
||||
new : contrib/seekable_format, demo and API, by Sean Purcell
|
||||
changed : contrib/linux-kernel, updated version and license, by Nick Terrell
|
||||
|
||||
v1.2.0 (May 5, 2017)
|
||||
cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
|
||||
cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
|
||||
cli : new : zstdmt symlink hardwired to `zstd -T0`
|
||||
cli : new : command --threads=# (#671)
|
||||
cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
|
||||
cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
|
||||
cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
|
||||
cli : fix : does not output compressed data on console
|
||||
cli : fix : ignore symbolic links unless --force specified,
|
||||
API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
|
||||
API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
|
||||
API : improved: ZSTDMT_compressCCtx() reduced memory usage
|
||||
API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
|
||||
API : fix : src size stored in frame header is controlled at end of frame
|
||||
API : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
|
||||
API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
|
||||
build: improved cmake script, by @Majlen
|
||||
build: enabled Multi-threading support for *BSD, by Baptiste Daroussin
|
||||
tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
|
||||
new : contrib/linux-kernel version, by Nick Terrell
|
||||
|
||||
v1.1.4 (Mar 18, 2017)
|
||||
cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
|
||||
cli : new : advanced benchmark command --priority=rt
|
||||
cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
|
||||
cli : fix : --rm remains silent when input is stdin
|
||||
cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
|
||||
speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
|
||||
memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
|
||||
arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
|
||||
API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
|
||||
API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
|
||||
build : new: meson build system in contrib/meson, by Dima Krasner
|
||||
build : improved cmake script, by @Majlen
|
||||
build : added -Wformat-security flag, as recommended by Padraig Brady
|
||||
doc : new : educational decoder, by Sean Purcell
|
||||
|
||||
v1.1.3 (Feb 7, 2017)
|
||||
cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
|
||||
cli : new : experimental target `make zstdmt`, with multi-threading support
|
||||
cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
|
||||
cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
|
||||
cli : fix zstdless on Mac OS-X, by Andrew Janke
|
||||
cli : fix #232 "compress non-files"
|
||||
dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
|
||||
API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
|
||||
API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
|
||||
API : new : ZDICT_finalizeDictionary()
|
||||
API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
|
||||
API : fix : all symbols properly exposed in libzstd, by Nick Terrell
|
||||
build : support for Solaris target, by Przemyslaw Skibinski
|
||||
doc : clarified specification, by Sean Purcell
|
||||
|
||||
v1.1.2 (Dec 15, 2016)
|
||||
API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
|
||||
API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
|
||||
API : zbuff : changed : prototypes now generate deprecation warnings
|
||||
lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
|
||||
lib : changed : only public ZSTD_ symbols are now exposed
|
||||
lib : changed : reduced usage of stack memory
|
||||
lib : fixed : several corner case bugs, by Nick Terrell
|
||||
cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
|
||||
cli : new : preserve file attributes
|
||||
cli : new : added zstdless and zstdgrep tools
|
||||
cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
|
||||
cli : fixed : zstdcat
|
||||
zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
|
||||
install : better compatibility with FreeBSD, by Dimitry Andric
|
||||
source tree : changed : zbuff source files moved to lib/deprecated
|
||||
|
||||
v1.1.1 (Nov 2, 2016)
|
||||
New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
|
||||
New : doc/zstd_manual.html, by Przemyslaw Skibinski
|
||||
Improved : slightly better compression ratio at --ultra levels (>= 20)
|
||||
Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
|
||||
Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
|
||||
Added : example/multiple_streaming_compression.c
|
||||
Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
|
||||
Updated man page
|
||||
Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
|
||||
|
||||
v1.1.0 (Sep 28, 2016)
|
||||
New : contrib/pzstd, parallel version of zstd, by Nick Terrell
|
||||
added : NetBSD install target (#338)
|
||||
Improved : speed for batches of small files
|
||||
Improved : speed of zlib wrapper, by Przemyslaw Skibinski
|
||||
Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
|
||||
Fixed : CLI -d output to stdout by default when input is stdin (#322)
|
||||
Fixed : CLI correctly detects console on Mac OS-X
|
||||
Fixed : CLI supports recursive mode `-r` on Mac OS-X
|
||||
Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
|
||||
Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
|
||||
Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
|
||||
Fixed : zstd-pgo, reported by octoploid (#329)
|
||||
|
||||
v1.0.0 (Sep 1, 2016)
|
||||
Change Licensing, all project is now BSD, Copyright Facebook
|
||||
Small decompression speed improvement
|
||||
API : Streaming API supports legacy format
|
||||
API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
|
||||
CLI supports legacy formats v0.4+
|
||||
Fixed : compression fails on certain huge files, reported by Jesse McGrew
|
||||
Enhanced documentation, by Przemyslaw Skibinski
|
||||
|
||||
v0.8.1 (Aug 18, 2016)
|
||||
New streaming API
|
||||
Changed : --ultra now enables levels beyond 19
|
||||
Changed : -i# now selects benchmark time in second
|
||||
Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
|
||||
Fixed : speed regression on specific patterns (#272)
|
||||
Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
|
||||
Fixed : ICC compilation, by Przemyslaw Skibinski
|
||||
|
||||
v0.8.0 (Aug 2, 2016)
|
||||
Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
|
||||
New : Build on FreeBSD and DragonFly, thanks to JrMarino
|
||||
Changed : modified API : ZSTD_compressEnd()
|
||||
Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
|
||||
Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
|
||||
Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
|
||||
Fixed : checksum correctly checked in single-pass mode
|
||||
Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
|
||||
Modified : minor compression level adaptations
|
||||
Updated : compression format specification to v0.2.0
|
||||
changed : zstd.h moved to /lib directory
|
||||
|
||||
v0.7.5 (Aug 1, 2016)
|
||||
Transition version, supporting decoding of v0.8.x
|
||||
|
||||
v0.7.4 (Jul 17, 2016)
|
||||
Added : homebrew for Mac, by Daniel Cade
|
||||
Added : more examples
|
||||
Fixed : segfault when using small dictionaries, reported by Felix Handte
|
||||
Modified : default compression level for CLI is now 3
|
||||
Updated : specification, to v0.1.1
|
||||
|
||||
v0.7.3 (Jul 9, 2016)
|
||||
New : compression format specification
|
||||
New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
|
||||
New : `ZSTD_getDecompressedSize()`
|
||||
New : OpenBSD target, by Juan Francisco Cantero Hurtado
|
||||
New : `examples` directory
|
||||
fixed : dictBuilder using HC levels, reported by Bartosz Taudul
|
||||
fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
|
||||
fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
|
||||
modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
|
||||
modified : legacy functions no longer need magic number
|
||||
|
||||
v0.7.2 (Jul 4, 2016)
|
||||
fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
|
||||
fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
|
||||
fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
|
||||
|
||||
v0.7.1 (Jun 23, 2016)
|
||||
fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
|
||||
fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
|
||||
fixed : corruption issue, reported by cj
|
||||
modified : checksum enabled by default in command line mode
|
||||
|
||||
v0.7.0 (Jun 17, 2016)
|
||||
New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
|
||||
New : Command `--rm`, to remove source file after successful de/compression
|
||||
New : Visual build scripts, by Christophe Chevalier
|
||||
New : Support for Sparse File-systems (do not use space for zero-filled sectors)
|
||||
New : Frame checksum support
|
||||
New : Support pass-through mode (when using `-df`)
|
||||
API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
|
||||
API : create dictionary files from custom content, by Giuseppe Ottaviano
|
||||
API : support for custom malloc/free functions
|
||||
New : controllable Dictionary ID
|
||||
New : Support for skippable frames
|
||||
|
||||
v0.6.1 (May 13, 2016)
|
||||
New : zlib wrapper API, thanks to Przemyslaw Skibinski
|
||||
New : Ability to compile compressor / decompressor separately
|
||||
Changed : new lib directory structure
|
||||
Fixed : Legacy codec v0.5 compatible with dictionary decompression
|
||||
Fixed : Decoder corruption error (#173)
|
||||
Fixed : null-string roundtrip (#176)
|
||||
New : benchmark mode can select directory as input
|
||||
Experimental : midipix support, VMS support
|
||||
|
||||
v0.6.0 (Apr 13, 2016)
|
||||
Stronger high compression modes, thanks to Przemyslaw Skibinski
|
||||
API : ZSTD_getFrameParams() provides size of decompressed content
|
||||
New : highest compression modes require `--ultra` command to fully unleash their capacity
|
||||
Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
|
||||
|
||||
v0.5.1 (Feb 18, 2016)
|
||||
New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
|
||||
Changed : Dictionary builder integrated into libzstd and zstd cli
|
||||
Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
|
||||
Fix : high compression modes for big-endian platforms
|
||||
New : zstd cli : `-t` | `--test` command
|
||||
|
||||
v0.5.0 (Feb 5, 2016)
|
||||
New : dictionary builder utility
|
||||
Changed : streaming & dictionary API
|
||||
Improved : better compression of small data
|
||||
|
||||
v0.4.7 (Jan 22, 2016)
|
||||
Improved : small compression speed improvement in HC mode
|
||||
Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
|
||||
fix : bt search bug
|
||||
|
||||
v0.4.6 (Jan 13, 2016)
|
||||
fix : fast compression mode on Windows
|
||||
New : cmake configuration file, thanks to Artyom Dymchenko
|
||||
Improved : high compression mode on repetitive data
|
||||
New : block-level API
|
||||
New : ZSTD_duplicateCCtx()
|
||||
|
||||
v0.4.5 (Dec 18, 2015)
|
||||
new : -m/--multiple : compress/decompress multiple files
|
||||
|
||||
v0.4.4 (Dec 14, 2015)
|
||||
Fixed : high compression modes for Windows 32 bits
|
||||
new : external dictionary API extended to buffered mode and accessible through command line
|
||||
new : windows DLL project, thanks to Christophe Chevalier
|
||||
|
||||
v0.4.3 (Dec 7, 2015)
|
||||
new : external dictionary API
|
||||
new : zstd-frugal
|
||||
|
||||
v0.4.2 (Dec 2, 2015)
|
||||
Generic minor improvements for small blocks
|
||||
Fixed : big-endian compatibility, by Peter Harris (#85)
|
||||
|
||||
v0.4.1 (Dec 1, 2015)
|
||||
Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
|
||||
removed `zstd.c`
|
||||
|
||||
v0.4.0 (Nov 29, 2015)
|
||||
Command line utility compatible with high compression levels
|
||||
Removed zstdhc => merged into zstd
|
||||
Added : ZBUFF API (see zstd_buffered.h)
|
||||
Rolling buffer support
|
||||
|
||||
v0.3.6 (Nov 10, 2015)
|
||||
small blocks params
|
||||
|
||||
v0.3.5 (Nov 9, 2015)
|
||||
minor generic compression improvements
|
||||
|
||||
v0.3.4 (Nov 6, 2015)
|
||||
Faster fast cLevels
|
||||
|
||||
v0.3.3 (Nov 5, 2015)
|
||||
Small compression ratio improvement
|
||||
|
||||
v0.3.2 (Nov 2, 2015)
|
||||
Fixed Visual Studio
|
||||
|
||||
v0.3.1 (Nov 2, 2015)
|
||||
Small compression ratio improvement
|
||||
|
||||
v0.3 (Oct 30, 2015)
|
||||
HC mode : compression levels 2-26
|
||||
|
||||
v0.2.2 (Oct 28, 2015)
|
||||
Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
|
||||
|
||||
v0.2.1 (Oct 24, 2015)
|
||||
Fix : Read errors, advanced fuzzer tests, by Hanno Böck
|
||||
|
||||
v0.2.0 (Oct 22, 2015)
|
||||
**Breaking format change**
|
||||
Faster decompression speed
|
||||
Can still decode v0.1 format
|
||||
|
||||
v0.1.3 (Oct 15, 2015)
|
||||
fix uninitialization warning, reported by Evan Nemerson
|
||||
|
||||
v0.1.2 (Sep 11, 2015)
|
||||
frame concatenation support
|
||||
|
||||
v0.1.1 (Aug 27, 2015)
|
||||
fix compression bug
|
||||
detects write-flush errors
|
||||
|
||||
v0.1.0 (Aug 25, 2015)
|
||||
first release
|
||||
30
curl/dep/zstd/LICENSE.txt
Обычный файл
30
curl/dep/zstd/LICENSE.txt
Обычный файл
@@ -0,0 +1,30 @@
|
||||
BSD License
|
||||
|
||||
For Zstandard software
|
||||
|
||||
Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name Facebook, nor Meta, nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
237
curl/dep/zstd/README.md
Обычный файл
237
curl/dep/zstd/README.md
Обычный файл
@@ -0,0 +1,237 @@
|
||||
<p align="center"><img src="https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/zstd_logo86.png" alt="Zstandard"></p>
|
||||
|
||||
__Zstandard__, or `zstd` as short version, is a fast lossless compression algorithm,
|
||||
targeting real-time compression scenarios at zlib-level and better compression ratios.
|
||||
It's backed by a very fast entropy stage, provided by [Huff0 and FSE library](https://github.com/Cyan4973/FiniteStateEntropy).
|
||||
|
||||
Zstandard's format is stable and documented in [RFC8878](https://datatracker.ietf.org/doc/html/rfc8878). Multiple independent implementations are already available.
|
||||
This repository represents the reference implementation, provided as an open-source dual [BSD](LICENSE) OR [GPLv2](COPYING) licensed **C** library,
|
||||
and a command line utility producing and decoding `.zst`, `.gz`, `.xz` and `.lz4` files.
|
||||
Should your project require another programming language,
|
||||
a list of known ports and bindings is provided on [Zstandard homepage](https://facebook.github.io/zstd/#other-languages).
|
||||
|
||||
**Development branch status:**
|
||||
|
||||
[![Build Status][travisDevBadge]][travisLink]
|
||||
[![Build status][CircleDevBadge]][CircleLink]
|
||||
[![Build status][CirrusDevBadge]][CirrusLink]
|
||||
[![Fuzzing Status][OSSFuzzBadge]][OSSFuzzLink]
|
||||
|
||||
[travisDevBadge]: https://api.travis-ci.com/facebook/zstd.svg?branch=dev "Continuous Integration test suite"
|
||||
[travisLink]: https://travis-ci.com/facebook/zstd
|
||||
[CircleDevBadge]: https://circleci.com/gh/facebook/zstd/tree/dev.svg?style=shield "Short test suite"
|
||||
[CircleLink]: https://circleci.com/gh/facebook/zstd
|
||||
[CirrusDevBadge]: https://api.cirrus-ci.com/github/facebook/zstd.svg?branch=dev
|
||||
[CirrusLink]: https://cirrus-ci.com/github/facebook/zstd
|
||||
[OSSFuzzBadge]: https://oss-fuzz-build-logs.storage.googleapis.com/badges/zstd.svg
|
||||
[OSSFuzzLink]: https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zstd
|
||||
|
||||
## Benchmarks
|
||||
|
||||
For reference, several fast compression algorithms were tested and compared
|
||||
on a desktop featuring a Core i7-9700K CPU @ 4.9GHz
|
||||
and running Ubuntu 20.04 (`Linux ubu20 5.15.0-101-generic`),
|
||||
using [lzbench], an open-source in-memory benchmark by @inikep
|
||||
compiled with [gcc] 9.4.0,
|
||||
on the [Silesia compression corpus].
|
||||
|
||||
[lzbench]: https://github.com/inikep/lzbench
|
||||
[Silesia compression corpus]: https://sun.aei.polsl.pl//~sdeor/index.php?page=silesia
|
||||
[gcc]: https://gcc.gnu.org/
|
||||
|
||||
| Compressor name | Ratio | Compression| Decompress.|
|
||||
| --------------- | ------| -----------| ---------- |
|
||||
| **zstd 1.5.6 -1** | 2.887 | 510 MB/s | 1580 MB/s |
|
||||
| [zlib] 1.2.11 -1 | 2.743 | 95 MB/s | 400 MB/s |
|
||||
| brotli 1.0.9 -0 | 2.702 | 395 MB/s | 430 MB/s |
|
||||
| **zstd 1.5.6 --fast=1** | 2.437 | 545 MB/s | 1890 MB/s |
|
||||
| **zstd 1.5.6 --fast=3** | 2.239 | 650 MB/s | 2000 MB/s |
|
||||
| quicklz 1.5.0 -1 | 2.238 | 525 MB/s | 750 MB/s |
|
||||
| lzo1x 2.10 -1 | 2.106 | 650 MB/s | 825 MB/s |
|
||||
| [lz4] 1.9.4 | 2.101 | 700 MB/s | 4000 MB/s |
|
||||
| lzf 3.6 -1 | 2.077 | 420 MB/s | 830 MB/s |
|
||||
| snappy 1.1.9 | 2.073 | 530 MB/s | 1660 MB/s |
|
||||
|
||||
[zlib]: https://www.zlib.net/
|
||||
[lz4]: https://lz4.github.io/lz4/
|
||||
|
||||
The negative compression levels, specified with `--fast=#`,
|
||||
offer faster compression and decompression speed
|
||||
at the cost of compression ratio.
|
||||
|
||||
Zstd can also offer stronger compression ratios at the cost of compression speed.
|
||||
Speed vs Compression trade-off is configurable by small increments.
|
||||
Decompression speed is preserved and remains roughly the same at all settings,
|
||||
a property shared by most LZ compression algorithms, such as [zlib] or lzma.
|
||||
|
||||
The following tests were run
|
||||
on a server running Linux Debian (`Linux version 4.14.0-3-amd64`)
|
||||
with a Core i7-6700K CPU @ 4.0GHz,
|
||||
using [lzbench], an open-source in-memory benchmark by @inikep
|
||||
compiled with [gcc] 7.3.0,
|
||||
on the [Silesia compression corpus].
|
||||
|
||||
Compression Speed vs Ratio | Decompression Speed
|
||||
---------------------------|--------------------
|
||||
 | 
|
||||
|
||||
A few other algorithms can produce higher compression ratios at slower speeds, falling outside of the graph.
|
||||
For a larger picture including slow modes, [click on this link](doc/images/DCspeed5.png).
|
||||
|
||||
|
||||
## The case for Small Data compression
|
||||
|
||||
Previous charts provide results applicable to typical file and stream scenarios (several MB). Small data comes with different perspectives.
|
||||
|
||||
The smaller the amount of data to compress, the more difficult it is to compress. This problem is common to all compression algorithms, and reason is, compression algorithms learn from past data how to compress future data. But at the beginning of a new data set, there is no "past" to build upon.
|
||||
|
||||
To solve this situation, Zstd offers a __training mode__, which can be used to tune the algorithm for a selected type of data.
|
||||
Training Zstandard is achieved by providing it with a few samples (one file per sample). The result of this training is stored in a file called "dictionary", which must be loaded before compression and decompression.
|
||||
Using this dictionary, the compression ratio achievable on small data improves dramatically.
|
||||
|
||||
The following example uses the `github-users` [sample set](https://github.com/facebook/zstd/releases/tag/v1.1.3), created from [github public API](https://developer.github.com/v3/users/#get-all-users).
|
||||
It consists of roughly 10K records weighing about 1KB each.
|
||||
|
||||
Compression Ratio | Compression Speed | Decompression Speed
|
||||
------------------|-------------------|--------------------
|
||||
 |  | 
|
||||
|
||||
|
||||
These compression gains are achieved while simultaneously providing _faster_ compression and decompression speeds.
|
||||
|
||||
Training works if there is some correlation in a family of small data samples. The more data-specific a dictionary is, the more efficient it is (there is no _universal dictionary_).
|
||||
Hence, deploying one dictionary per type of data will provide the greatest benefits.
|
||||
Dictionary gains are mostly effective in the first few KB. Then, the compression algorithm will gradually use previously decoded content to better compress the rest of the file.
|
||||
|
||||
### Dictionary compression How To:
|
||||
|
||||
1. Create the dictionary
|
||||
|
||||
`zstd --train FullPathToTrainingSet/* -o dictionaryName`
|
||||
|
||||
2. Compress with dictionary
|
||||
|
||||
`zstd -D dictionaryName FILE`
|
||||
|
||||
3. Decompress with dictionary
|
||||
|
||||
`zstd -D dictionaryName --decompress FILE.zst`
|
||||
|
||||
|
||||
## Build instructions
|
||||
|
||||
`make` is the officially maintained build system of this project.
|
||||
All other build systems are "compatible" and 3rd-party maintained,
|
||||
they may feature small differences in advanced options.
|
||||
When your system allows it, prefer using `make` to build `zstd` and `libzstd`.
|
||||
|
||||
### Makefile
|
||||
|
||||
If your system is compatible with standard `make` (or `gmake`),
|
||||
invoking `make` in root directory will generate `zstd` cli in root directory.
|
||||
It will also create `libzstd` into `lib/`.
|
||||
|
||||
Other available options include:
|
||||
- `make install` : create and install zstd cli, library and man pages
|
||||
- `make check` : create and run `zstd`, test its behavior on local platform
|
||||
|
||||
The `Makefile` follows the [GNU Standard Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html),
|
||||
allowing staged install, standard flags, directory variables and command variables.
|
||||
|
||||
For advanced use cases, specialized compilation flags which control binary generation
|
||||
are documented in [`lib/README.md`](lib/README.md#modular-build) for the `libzstd` library
|
||||
and in [`programs/README.md`](programs/README.md#compilation-variables) for the `zstd` CLI.
|
||||
|
||||
### cmake
|
||||
|
||||
A `cmake` project generator is provided within `build/cmake`.
|
||||
It can generate Makefiles or other build scripts
|
||||
to create `zstd` binary, and `libzstd` dynamic and static libraries.
|
||||
|
||||
By default, `CMAKE_BUILD_TYPE` is set to `Release`.
|
||||
|
||||
#### Support for Fat (Universal2) Output
|
||||
|
||||
`zstd` can be built and installed with support for both Apple Silicon (M1/M2) as well as Intel by using CMake's Universal2 support.
|
||||
To perform a Fat/Universal2 build and install use the following commands:
|
||||
|
||||
```bash
|
||||
cmake -B build-cmake-debug -S build/cmake -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;x86_64h;arm64"
|
||||
cd build-cmake-debug
|
||||
ninja
|
||||
sudo ninja install
|
||||
```
|
||||
|
||||
### Meson
|
||||
|
||||
A Meson project is provided within [`build/meson`](build/meson). Follow
|
||||
build instructions in that directory.
|
||||
|
||||
You can also take a look at [`.travis.yml`](.travis.yml) file for an
|
||||
example about how Meson is used to build this project.
|
||||
|
||||
Note that default build type is **release**.
|
||||
|
||||
### VCPKG
|
||||
You can build and install zstd [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
|
||||
|
||||
git clone https://github.com/Microsoft/vcpkg.git
|
||||
cd vcpkg
|
||||
./bootstrap-vcpkg.sh
|
||||
./vcpkg integrate install
|
||||
./vcpkg install zstd
|
||||
|
||||
The zstd port in vcpkg is kept up to date by Microsoft team members and community contributors.
|
||||
If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
|
||||
|
||||
### Conan
|
||||
|
||||
You can install pre-built binaries for zstd or build it from source using [Conan](https://conan.io/). Use the following command:
|
||||
|
||||
```bash
|
||||
conan install --requires="zstd/[*]" --build=missing
|
||||
```
|
||||
|
||||
The zstd Conan recipe is kept up to date by Conan maintainers and community contributors.
|
||||
If the version is out of date, please [create an issue or pull request](https://github.com/conan-io/conan-center-index) on the ConanCenterIndex repository.
|
||||
|
||||
### Visual Studio (Windows)
|
||||
|
||||
Going into `build` directory, you will find additional possibilities:
|
||||
- Projects for Visual Studio 2005, 2008 and 2010.
|
||||
+ VS2010 project is compatible with VS2012, VS2013, VS2015 and VS2017.
|
||||
- Automated build scripts for Visual compiler by [@KrzysFR](https://github.com/KrzysFR), in `build/VS_scripts`,
|
||||
which will build `zstd` cli and `libzstd` library without any need to open Visual Studio solution.
|
||||
|
||||
### Buck
|
||||
|
||||
You can build the zstd binary via buck by executing: `buck build programs:zstd` from the root of the repo.
|
||||
The output binary will be in `buck-out/gen/programs/`.
|
||||
|
||||
### Bazel
|
||||
|
||||
You easily can integrate zstd into your Bazel project by using the module hosted on the [Bazel Central Repository](https://registry.bazel.build/modules/zstd).
|
||||
|
||||
## Testing
|
||||
|
||||
You can run quick local smoke tests by running `make check`.
|
||||
If you can't use `make`, execute the `playTest.sh` script from the `src/tests` directory.
|
||||
Two env variables `$ZSTD_BIN` and `$DATAGEN_BIN` are needed for the test script to locate the `zstd` and `datagen` binary.
|
||||
For information on CI testing, please refer to `TESTING.md`.
|
||||
|
||||
## Status
|
||||
|
||||
Zstandard is currently deployed within Facebook and many other large cloud infrastructures.
|
||||
It is run continuously to compress large amounts of data in multiple formats and use cases.
|
||||
Zstandard is considered safe for production environments.
|
||||
|
||||
## License
|
||||
|
||||
Zstandard is dual-licensed under [BSD](LICENSE) OR [GPLv2](COPYING).
|
||||
|
||||
## Contributing
|
||||
|
||||
The `dev` branch is the one where all contributions are merged before reaching `release`.
|
||||
If you plan to propose a patch, please commit into the `dev` branch, or its own feature branch.
|
||||
Direct commit to `release` are not permitted.
|
||||
For more information, please read [CONTRIBUTING](CONTRIBUTING.md).
|
||||
Ссылка в новой задаче
Block a user