mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 04:04:39 +02:00
fix and update README.md markdown
This commit is contained in:
101
README.md
101
README.md
@@ -2,80 +2,79 @@
|
|||||||
<img src="https://repology.org/badge/vertical-allrepos/wolfssl.svg" alt="Packaging status" align="right">
|
<img src="https://repology.org/badge/vertical-allrepos/wolfssl.svg" alt="Packaging status" align="right">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
*** Description ***
|
# wolfSSL Embedded SSL/TLS Library
|
||||||
|
|
||||||
The wolfSSL embedded SSL library (formerly CyaSSL) is a lightweight SSL/TLS
|
The [wolfSSL embedded SSL library](https://www.wolfssl.com/products/wolfssl/)
|
||||||
library written in ANSI C and targeted for embedded, RTOS, and
|
(formerly CyaSSL) is a lightweight SSL/TLS library written in ANSI C and
|
||||||
resource-constrained environments - primarily because of its small size, speed,
|
targeted for embedded, RTOS, and resource-constrained environments - primarily
|
||||||
and feature set. It is commonly used in standard operating environments as well
|
because of its small size, speed, and feature set. It is commonly used in
|
||||||
because of its royalty-free pricing and excellent cross platform support.
|
standard operating environments as well because of its royalty-free pricing
|
||||||
wolfSSL supports industry standards up to the current TLS 1.3 and DTLS 1.2
|
and excellent cross platform support. wolfSSL supports industry standards up
|
||||||
levels, is up to 20 times smaller than OpenSSL, and offers progressive ciphers
|
to the current [TLS 1.3](https://www.wolfssl.com/tls13) and DTLS 1.2, is up to
|
||||||
such as ChaCha20, Curve25519, NTRU, and Blake2b. User benchmarking and feedback
|
20 times smaller than OpenSSL, and offers progressive ciphers such as ChaCha20,
|
||||||
reports dramatically better performance when using wolfSSL over OpenSSL.
|
Curve25519, NTRU, and Blake2b. User benchmarking and feedback reports
|
||||||
|
dramatically better performance when using wolfSSL over OpenSSL.
|
||||||
|
|
||||||
wolfSSL is powered by the wolfCrypt library. Two versions of the wolfCrypt
|
wolfSSL is powered by the wolfCrypt cryptography library. Two versions of
|
||||||
cryptography library have been FIPS 140-2 validated (Certificate #2425 and
|
wolfCrypt have been FIPS 140-2 validated (Certificate #2425 and
|
||||||
certificate #3389). For additional information, visit the wolfCrypt FIPS FAQ
|
certificate #3389). FIPS 140-3 validation is in progress. For additional
|
||||||
(https://www.wolfssl.com/license/fips/) or contact fips@wolfssl.com
|
information, visit the [wolfCrypt FIPS FAQ](https://www.wolfssl.com/license/fips/)
|
||||||
|
or contact fips@wolfssl.com.
|
||||||
|
|
||||||
*** Why choose wolfSSL? ***
|
## Why Choose wolfSSL?
|
||||||
|
|
||||||
There are many reasons to choose wolfSSL as your embedded SSL solution. Some of
|
There are many reasons to choose wolfSSL as your embedded, desktop, mobile, or
|
||||||
the top reasons include size (typical footprint sizes range from 20-100 kB),
|
enterprise SSL/TLS solution. Some of the top reasons include size (typical
|
||||||
support for the newest standards (SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3,
|
footprint sizes range from 20-100 kB), support for the newest standards
|
||||||
DTLS 1.0, and DTLS 1.2), current and progressive cipher support (including
|
(SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3, DTLS 1.0, and DTLS 1.2), current
|
||||||
stream ciphers), multi-platform, royalty free, and an OpenSSL compatibility API
|
and progressive cipher support (including stream ciphers), multi-platform,
|
||||||
to ease porting into existing applications which have previously used the
|
royalty free, and an OpenSSL compatibility API to ease porting into existing
|
||||||
OpenSSL package. For a complete feature list, see chapter 4 of the wolfSSL
|
applications which have previously used the OpenSSL package. For a complete
|
||||||
manual. (https://www.wolfssl.com/docs/wolfssl-manual/ch4/)
|
feature list, see [Chapter 4](https://www.wolfssl.com/docs/wolfssl-manual/ch4/)
|
||||||
|
of the wolfSSL manual.
|
||||||
|
|
||||||
*** Notes, Please read ***
|
## Notes, Please Read
|
||||||
|
|
||||||
Note 1)
|
**Note 1)**
|
||||||
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no longer
|
wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no longer
|
||||||
supports static key cipher suites with PSK, RSA, or ECDH. This means if you
|
supports static key cipher suites with PSK, RSA, or ECDH. This means if you
|
||||||
plan to use TLS cipher suites you must enable DH (DH is on by default), or
|
plan to use TLS cipher suites you must enable DH (DH is on by default), or
|
||||||
enable ECC (ECC is on by default), or you must enable static key cipher suites
|
enable ECC (ECC is on by default), or you must enable static key cipher suites
|
||||||
with
|
with one or more of the following defines:
|
||||||
|
|
||||||
WOLFSSL_STATIC_DH
|
WOLFSSL_STATIC_DH
|
||||||
WOLFSSL_STATIC_RSA
|
WOLFSSL_STATIC_RSA
|
||||||
or
|
|
||||||
WOLFSSL_STATIC_PSK
|
WOLFSSL_STATIC_PSK
|
||||||
|
|
||||||
though static key cipher suites are deprecated and will be removed from future
|
Though static key cipher suites are deprecated and will be removed from future
|
||||||
versions of TLS. They also lower your security by removing PFS. Since current
|
versions of TLS. They also lower your security by removing PFS. Since current
|
||||||
NTRU suites available do not use ephemeral keys, WOLFSSL_STATIC_RSA needs to be
|
NTRU suites available do not use ephemeral keys, ```WOLFSSL_STATIC_RSA``` needs
|
||||||
used in order to build with NTRU suites.
|
to be used in order to build with NTRU suites.
|
||||||
|
|
||||||
When compiling ssl.c, wolfSSL will now issue a compiler error if no cipher
|
When compiling ssl.c, wolfSSL will now issue a compiler error if no cipher
|
||||||
suites are available. You can remove this error by defining
|
suites are available. You can remove this error by defining
|
||||||
WOLFSSL_ALLOW_NO_SUITES in the event that you desire that, i.e., you're not
|
```WOLFSSL_ALLOW_NO_SUITES``` in the event that you desire that, i.e., you're
|
||||||
using TLS cipher suites.
|
not using TLS cipher suites.
|
||||||
|
|
||||||
Note 2)
|
**Note 2)**
|
||||||
wolfSSL takes a different approach to certificate verification than OpenSSL
|
wolfSSL takes a different approach to certificate verification than OpenSSL
|
||||||
does. The default policy for the client is to verify the server, this means
|
does. The default policy for the client is to verify the server, this means
|
||||||
that if you don't load CAs to verify the server you'll get a connect error,
|
that if you don't load CAs to verify the server you'll get a connect error,
|
||||||
no signer error to confirm failure (-188).
|
no signer error to confirm failure (-188).
|
||||||
|
|
||||||
If you want to mimic OpenSSL behavior of having SSL_connect succeed even if
|
If you want to mimic OpenSSL behavior of having SSL\_connect succeed even if
|
||||||
verifying the server fails and reducing security you can do this by calling:
|
verifying the server fails and reducing security you can do this by calling:
|
||||||
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
|
||||||
before calling wolfSSL_new();. Though it's not recommended.
|
before calling wolfSSL\_new();. Though it's not recommended.
|
||||||
|
|
||||||
Note 3)
|
**Note 3)**
|
||||||
The enum values SHA, SHA256, SHA384, SHA512 are no longer available when
|
The enum values SHA, SHA256, SHA384, SHA512 are no longer available when
|
||||||
wolfSSL is built with --enable-opensslextra (OPENSSL_EXTRA) or with the macro
|
wolfSSL is built with --enable-opensslextra (```OPENSSL_EXTRA```) or with the
|
||||||
NO_OLD_SHA_NAMES. These names get mapped to the OpenSSL API for a single call
|
macro ```NO_OLD_SHA_NAMES```. These names get mapped to the OpenSSL API for a
|
||||||
hash function. Instead the name WC_SHA, WC_SHA256, WC_SHA384 and WC_SHA512
|
single call hash function. Instead the name WC_SHA, WC_SHA256, WC_SHA384 and
|
||||||
should be used for the enum name.
|
WC_SHA512 should be used for the enum name.
|
||||||
|
|
||||||
*** end Notes ***
|
|
||||||
|
|
||||||
|
|
||||||
# wolfSSL Release 4.6.0 (December 22, 2020)
|
# wolfSSL Release 4.6.0 (December 22, 2020)
|
||||||
Release 4.6.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
Release 4.6.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||||
@@ -236,26 +235,22 @@ More info can be found on-line at https://wolfssl.com/wolfSSL/Docs.html
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
*** Resources ***
|
# Resources
|
||||||
|
|
||||||
|
|
||||||
[wolfSSL Website](https://www.wolfssl.com/)
|
[wolfSSL Website](https://www.wolfssl.com/)
|
||||||
|
|
||||||
[wolfSSL Wiki](https://github.com/wolfSSL/wolfssl/wiki)
|
[wolfSSL Wiki](https://github.com/wolfSSL/wolfssl/wiki)
|
||||||
|
|
||||||
[FIPS FAQ](https://wolfssl.com/license/fips)
|
[FIPS 140-2/140-3 FAQ](https://wolfssl.com/license/fips)
|
||||||
|
|
||||||
[wolfSSL Documents](https://wolfssl.com/wolfSSL/Docs.html)
|
[wolfSSL Documentation](https://wolfssl.com/wolfSSL/Docs.html)
|
||||||
|
|
||||||
[wolfSSL Manual](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html)
|
[wolfSSL Manual](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html)
|
||||||
|
|
||||||
[wolfSSL API Reference]
|
[wolfSSL API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-17-wolfssl-api-reference.html)
|
||||||
(https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-17-wolfssl-api-reference.html)
|
|
||||||
|
|
||||||
[wolfCrypt API Reference]
|
[wolfCrypt API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-wolfcrypt-api-reference.html)
|
||||||
(https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-wolfcrypt-api-reference.html)
|
|
||||||
|
|
||||||
[TLS 1.3](https://www.wolfssl.com/docs/tls13/)
|
[TLS 1.3](https://www.wolfssl.com/docs/tls13/)
|
||||||
|
|
||||||
[wolfSSL Vulnerabilities]
|
[wolfSSL Vulnerabilities](https://www.wolfssl.com/docs/security-vulnerabilities/)
|
||||||
(https://www.wolfssl.com/docs/security-vulnerabilities/)
|
|
||||||
|
Reference in New Issue
Block a user