source: azure_iot_hub/trunk/wolfssl-3.15.7/README@ 388

Last change on this file since 388 was 388, checked in by coas-nagasima, 5 years ago

Azure IoT Hub Device C SDK を使ったサンプルの追加

File size: 6.6 KB
Line 
1*** Description ***
2
3The wolfSSL embedded SSL library (formerly CyaSSL) is a lightweight SSL/TLS
4library written in ANSI C and targeted for embedded, RTOS, and
5resource-constrained environments - primarily because of its small size, speed,
6and feature set. It is commonly used in standard operating environments as well
7because of its royalty-free pricing and excellent cross platform support.
8wolfSSL supports industry standards up to the current TLS 1.3 and DTLS 1.3
9levels, is up to 20 times smaller than OpenSSL, and offers progressive ciphers
10such as ChaCha20, Curve25519, NTRU, and Blake2b. User benchmarking and feedback
11reports dramatically better performance when using wolfSSL over OpenSSL.
12
13wolfSSL is powered by the wolfCrypt library. A version of the wolfCrypt
14cryptography library has been FIPS 140-2 validated (Certificate #2425). For
15additional information, visit the wolfCrypt FIPS FAQ
16(https://www.wolfssl.com/license/fips/) or contact fips@wolfssl.com
17
18*** Why choose wolfSSL? ***
19
20There are many reasons to choose wolfSSL as your embedded SSL solution. Some of
21the top reasons include size (typical footprint sizes range from 20-100 kB),
22support for the newest standards (SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3,
23DTLS 1.0, and DTLS 1.2), current and progressive cipher support (including
24stream ciphers), multi-platform, royalty free, and an OpenSSL compatibility API
25to ease porting into existing applications which have previously used the
26OpenSSL package. For a complete feature list, see chapter 4 of the wolfSSL
27manual. (https://www.wolfssl.com/docs/wolfssl-manual/ch4/)
28
29*** Notes, Please read ***
30
31Note 1)
32wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no longer
33supports static key cipher suites with PSK, RSA, or ECDH. This means if you
34plan to use TLS cipher suites you must enable DH (DH is on by default), or
35enable ECC (ECC is on by default), or you must enable static key cipher suites
36with
37
38 WOLFSSL_STATIC_DH
39 WOLFSSL_STATIC_RSA
40 or
41 WOLFSSL_STATIC_PSK
42
43though static key cipher suites are deprecated and will be removed from future
44versions of TLS. They also lower your security by removing PFS. Since current
45NTRU suites available do not use ephemeral keys, WOLFSSL_STATIC_RSA needs to be
46used in order to build with NTRU suites.
47
48When compiling ssl.c, wolfSSL will now issue a compiler error if no cipher
49suites are available. You can remove this error by defining
50WOLFSSL_ALLOW_NO_SUITES in the event that you desire that, i.e., you're not
51using TLS cipher suites.
52
53Note 2)
54wolfSSL takes a different approach to certificate verification than OpenSSL
55does. The default policy for the client is to verify the server, this means
56that if you don't load CAs to verify the server you'll get a connect error,
57no signer error to confirm failure (-188).
58
59If you want to mimic OpenSSL behavior of having SSL_connect succeed even if
60verifying the server fails and reducing security you can do this by calling:
61
62 wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
63
64before calling wolfSSL_new();. Though it's not recommended.
65
66Note 3)
67The enum values SHA, SHA256, SHA384, SHA512 are no longer available when
68wolfSSL is built with --enable-opensslextra (OPENSSL_EXTRA) or with the macro
69NO_OLD_SHA_NAMES. These names get mapped to the OpenSSL API for a single call
70hash function. Instead the name WC_SHA, WC_SHA256, WC_SHA384 and WC_SHA512
71should be used for the enum name.
72
73*** end Notes ***
74
75
76********* wolfSSL Release 3.15.7 (12/26/2018)
77
78Release 3.15.7 of wolfSSL embedded TLS has bug fixes and new features including:
79
80- Support for Espressif ESP-IDF development framework
81- Fix for XCode build with iPhone simulator on i386
82- PKCS7 support for generating and verify bundles using a detached signature
83- Fix for build disabling AES-CBC and enabling opensslextra compatibility layer
84- Updates to sniffer for showing session information and handling split messages across records
85- Port update for Micrium uC/OS-III
86- Feature to adjust max fragment size post handshake when compiled with the macro WOLFSSL_ALLOW_MAX_FRAGMENT_ADJUST
87- Adding the macro NO_MULTIBYTE_PRINT for compiling out special characters that embedded devices may have problems with
88- Updates for Doxygen documentation, including PKCS #11 API and more
89- Adding Intel QuickAssist v1.7 driver support for asynchronous crypto
90- Adding Intel QuickAssist RSA key generation and SHA-3 support
91- RSA verify only (--enable-rsavfy) and RSA public only (--enable-rsapub) builds added
92- Enhancements to test cases for increased code coverage
93- Updates to VxWorks port for use with Mongoose, including updates to the OpenSSL compatibility layer
94- Yocto Project ease of use improvements along with many updates and build instructions added to the INSTALL file
95- Maximum ticket nonce size was increased to 8
96- Updating --enable-armasm build for ease of use with autotools
97- Updates to internal code checking TLS 1.3 version with a connection
98- Removing unnecessary extended master secret from ServerHello if using TLS 1.3
99- Fix for TLS v1.3 HelloRetryRequest to be sent immediately and not grouped
100
101
102
103This release of wolfSSL includes a fix for 1 security vulnerability.
104
105Medium level fix for potential cache attack with a variant of Bleichenbacher’s attack. Earlier versions of wolfSSL leaked PKCS #1 v1.5 padding information during private key decryption that could lead to a potential padding oracle attack. It is recommended that users update to the latest version of wolfSSL if they have RSA cipher suites enabled and have the potential for malicious software to be ran on the same system that is performing RSA operations. Users that have only ECC cipher suites enabled and are not performing RSA PKCS #1 v1.5 Decryption operations are not vulnerable. Also users with TLS 1.3 only connections are not vulnerable to this attack. Thanks to Eyal Ronen (Weizmann Institute), Robert Gillham (University of Adelaide), Daniel Genkin (University of Michigan), Adi Shamir (Weizmann Institute), David Wong (NCC Group), and Yuval Yarom (University of Adelaide and Data61) for the report.
106
107The paper for further reading on the attack details can be found at http://cat.eyalro.net/cat.pdf.
108
109
110*** Resources ***
111
112
113[wolfSSL Website](https://www.wolfssl.com/)
114
115[wolfSSL Wiki](https://github.com/wolfSSL/wolfssl/wiki)
116
117[FIPS FAQ](https://www.wolfssl.com/wolfSSL/fips.html)
118
119[wolfSSL Manual](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html)
120
121[wolfSSL API Reference]
122(https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-17-wolfssl-api-reference.html)
123
124[wolfCrypt API Reference]
125(https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-wolfcrypt-api-reference.html)
126
127[TLS 1.3](https://www.wolfssl.com/docs/tls13/)
Note: See TracBrowser for help on using the repository browser.