README 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718
  1. *** Notes, Please read ***
  2. Note 1)
  3. wolfSSL as of 3.6.6 no longer enables SSLv3 by default. wolfSSL also no
  4. longer supports static key cipher suites with PSK, RSA, or ECDH. This means
  5. if you plan to use TLS cipher suites you must enable DH (DH is on by default),
  6. or enable ECC (ECC is on by default on 64bit systems), or you must enable static
  7. key cipher suites with
  8. WOLFSSL_STATIC_DH
  9. WOLFSSL_STATIC_RSA
  10. or
  11. WOLFSSL_STATIC_PSK
  12. though static key cipher suites are deprecated and will be removed from future
  13. versions of TLS. They also lower your security by removing PFS. Since current
  14. NTRU suites available do not use ephemeral keys, WOLFSSL_STATIC_RSA needs to be
  15. used in order to build with NTRU suites.
  16. When compiling ssl.c, wolfSSL will now issue a compiler error if no cipher suites
  17. are available. You can remove this error by defining WOLFSSL_ALLOW_NO_SUITES
  18. in the event that you desire that, i.e., you're not using TLS cipher suites.
  19. Note 2)
  20. wolfSSL takes a different approach to certificate verification than OpenSSL
  21. does. The default policy for the client is to verify the server, this means
  22. that if you don't load CAs to verify the server you'll get a connect error,
  23. no signer error to confirm failure (-188).
  24. If you want to mimic OpenSSL behavior of having SSL_connect succeed even if
  25. verifying the server fails and reducing security you can do this by calling:
  26. wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
  27. before calling wolfSSL_new(); Though it's not recommended.
  28. *** end Notes ***
  29. ********* wolfSSL (Formerly CyaSSL) Release 3.12.2 (10/20/2017)
  30. Release 3.12.2 of wolfSSL has bug fixes and new features including:
  31. This release includes many performance improvements with Intel ASM (AVX/AVX2) and AES-NI. New single precision math option to speedup RSA, DH and ECC. Embedded hardware support has been expanded for STM32, PIC32MZ and ATECC508A. AES now supports XTS mode for disk encryption. Certificate improvements for setting serial number, key usage and extended key usage. Refactor of SSL_ and hash types to allow openssl coexistence. Improvements for TLS 1.3. Fixes for OCSP stapling to allow disable and WOLFSSL specific user context for callbacks. Fixes for openssl and MySQL compatibility. Updated Micrium port. Fixes for asynchronous modes.
  32. - Fix to not send OCSP stapling extensions in client_hello when not enabled
  33. - Added new API's for disabling OCSP stapling
  34. - Add check for SIZEOF_LONG with sun and LP64
  35. - Fixes for various TLS 1.3 disable options (RSA, ECC and ED/Curve 25519).
  36. - Fix to disallow upgrading to TLS v1.3
  37. - Fixes for wolfSSL_EVP_CipherFinal() when message size is a round multiple of a block size.
  38. - Add HMAC benchmark and expanded AES key size benchmarks
  39. - Added simple GCC ARM Makefile example
  40. - Add tests for 3072-bit RSA and DH.
  41. - Fixed DRAFT_18 define and fixed downgrading with TLS v1.3
  42. - Fixes to allow custom serial number during certificate generation
  43. - Add method to get WOLFSSL_CTX certificate manager
  44. - Improvement to `wolfSSL_SetOCSP_Cb` to allow context per WOLFSSL object
  45. - Alternate certificate chain support `WOLFSSL_ALT_CERT_CHAINS`. Enables checking cert against multiple CA's.
  46. - Added new `--disable-oldnames` option to allow for using openssl along-side wolfssl headers (without OPENSSL_EXTRA).
  47. - Refactor SSL_ and hashing types to use wolf specific prefix (WOLFSSL and WC_) to allow openssl coexistence.
  48. - Fixes for HAVE_INTEL_MULX
  49. - Cleanup include paths for MySQL cmake build
  50. - Added configure option for building library for wolfSSH (--enable-wolfssh)
  51. - Openssl compatibility layer improvements
  52. - Expanded API unit tests
  53. - Fixes for STM32 crypto hardware acceleration
  54. - Added AES XTS mode (--enable-xts)
  55. - Added ASN Extended Key Usage Support (see wc_SetExtKeyUsage).
  56. - Math updates and added TFM_MIPS speedup.
  57. - Fix for creation of the KeyUsage BitString
  58. - Fix for 8k keys with MySQL compatibility
  59. - Fixes for ATECC508A.
  60. - Fixes for PIC32MZ hashing.
  61. - Fixes and improvements to asynchronous modes for Intel QuickAssist and Cavium Nitrox V.
  62. - Update HASH_DRBG Reseed mechanism and add test case
  63. - Rename the file io.h/io.c to wolfio.h/wolfio.c
  64. - Cleanup the wolfIO_Send function.
  65. - OpenSSL Compatibility Additions and Fixes
  66. - Improvements to Visual Studio DLL project/solution.
  67. - Added function to generate public ECC key from private key
  68. - Added async blocking support for sniffer tool.
  69. - Added wolfCrypt hash tests for empty string and large data.
  70. - Added ability to use of wolf implementation of `strtok` using `USE_WOLF_STRTOK`.
  71. - Updated Micrium uC/OS-III Port
  72. - Updated root certs for OCSP scripts
  73. - New Single Precision math option for RSA, DH and ECC (off by default). See `--enable-sp`.
  74. - Speedups for AES GCM with AESNI (--enable-aesni)
  75. - Speedups for SHA2, ChaCha20/Poly1035 using AVX/AVX2
  76. ********* wolfSSL (Formerly CyaSSL) Release 3.12.0 (8/04/2017)
  77. Release 3.12.0 of wolfSSL has bug fixes and new features including:
  78. - TLS 1.3 with Nginx! TLS 1.3 with ARMv8! TLS 1.3 with Async Crypto! (--enable-tls13)
  79. - TLS 1.3 0RTT feature added
  80. - Added port for using Intel SGX with Linux
  81. - Update and fix PIC32MZ port
  82. - Additional unit testing for MD5, SHA, SHA224, SHA256, SHA384, SHA512, RipeMd, HMAC, 3DES, IDEA, ChaCha20, ChaCha20Poly1305 AEAD, Camellia, Rabbit, ARC4, AES, RSA, Hc128
  83. - AVX and AVX2 assembly for improved ChaCha20 performance
  84. - Intel QAT fixes for when using --disable-fastmath
  85. - Update how DTLS handles decryption and MAC failures
  86. - Update DTLS session export version number for --enable-sessionexport feature
  87. - Add additional input argument sanity checks to ARMv8 assembly port
  88. - Fix for making PKCS12 dynamic types match
  89. - Fixes for potential memory leaks when using --enable-fast-rsa
  90. - Fix for when using custom ECC curves and add BRAINPOOLP256R1 test
  91. - Update TI-RTOS port for dependency on new wolfSSL source files
  92. - DTLS multicast feature added, --enable-mcast
  93. - Fix for Async crypto with GCC 7.1 and HMAC when not using Intel QuickAssist
  94. - Improvements and enhancements to Intel QuickAssist support
  95. - Added Xilinx port
  96. - Added SHA3 Keccak feature, --enable-sha3
  97. - Expand wolfSSL Python wrapper to now include a client side implementation
  98. - Adjust example servers to not treat a peer closed error as a hard error
  99. - Added more sanity checks to fp_read_unsigned_bin function
  100. - Add SHA224 and AES key wrap to ARMv8 port
  101. - Update MQX classics and mmCAU ports
  102. - Fix for potential buffer over read with wolfSSL_CertPemToDer
  103. - Add PKCS7/CMS decode support for KARI with IssuerAndSerialNumber
  104. - Fix ThreadX/NetX warning
  105. - Fixes for OCSP and CRL non blocking sockets and for incomplete cert chain with OCSP
  106. - Added RSA PSS sign and verify
  107. - Fix for STM32F4 AES-GCM
  108. - Added enable all feature (--enable-all)
  109. - Added trackmemory feature (--enable-trackmemory)
  110. - Fixes for AES key wrap and PKCS7 on Windows VS
  111. - Added benchmark block size argument
  112. - Support use of staticmemory with PKCS7
  113. - Fix for Blake2b build with GCC 5.4
  114. - Fixes for compiling wolfSSL with GCC version 7, most dealing with switch statement fall through warnings.
  115. - Added warning when compiling without hardened math operations
  116. Note:
  117. There is a known issue with using ChaCha20 AVX assembly on versions of GCC earlier than 5.2. This is encountered with using the wolfSSL enable options --enable-intelasm and --enable-chacha. To avoid this issue ChaCha20 can be enabled with --enable-chacha=noasm.
  118. If using --enable-intelasm and also using --enable-sha224 or --enable-sha256 there is a known issue with trying to use -fsanitize=address.
  119. This release of wolfSSL fixes 1 low level security vulnerability.
  120. Low level fix for a potential DoS attack on a wolfSSL client. Previously a client would accept many warning alert messages without a limit. This fix puts a limit to the number of warning alert messages received and if this limit is reached a fatal error ALERT_COUNT_E is returned. The max number of warning alerts by default is set to 5 and can be adjusted with the macro WOLFSSL_ALERT_COUNT_MAX. Thanks for the report from Tarun Yadav and Koustav Sadhukhan from Defence Research and Development Organization, INDIA.
  121. See INSTALL file for build instructions.
  122. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  123. ********* wolfSSL (Formerly CyaSSL) Release 3.11.1 (5/11/2017)
  124. Release 3.11.1 of wolfSSL is a TLS 1.3 BETA release, which includes:
  125. - TLS 1.3 client and server support for TLS 1.3 with Draft 18 support
  126. This is strictly a BETA release, and designed for testing and user feedback.
  127. Please send any comments, testing results, or feedback to wolfSSL at
  128. support@wolfssl.com.
  129. See INSTALL file for build instructions.
  130. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  131. ********* wolfSSL (Formerly CyaSSL) Release 3.11.0 (5/04/2017)
  132. Release 3.11.0 of wolfSSL has bug fixes and new features including:
  133. - Code updates for warnings reported by Coverity scans
  134. - Testing and warning fixes for FreeBSD on PowerPC
  135. - Updates and refactoring done to ASN1 parsing functions
  136. - Change max PSK identity buffer to account for an identity length of 128 characters
  137. - Update Arduino script to handle recent files and additions
  138. - Added support for PKCS#7 Signed Data with ECDSA
  139. - Fix for interoperability with ChaCha20-Poly1305 suites using older draft versions
  140. - DTLS update to allow multiple handshake messages in one DTLS record. Thanks to Eric Samsel over at Welch Allyn for reporting this bug.
  141. - Intel QuickAssist asynchronous support (PR #715 - https://www.wolfssl.com/wolfSSL/Blog/Entries/2017/1/18_wolfSSL_Asynchronous_Intel_QuickAssist_Support.html)
  142. - Added support for HAproxy load balancer
  143. - Added option to allow SHA1 with TLS 1.2 for IIS compatibility (WOLFSSL_ALLOW_TLS_SHA1)
  144. - Added Curve25519 51-bit Implementation, increasing performance on systems that have 128 bit types
  145. - Fix to not send session ID on server side if session cache is off unless we're echoing
  146. session ID as part of session tickets
  147. - Fixes for ensuring all default ciphers are setup correctly (see PR #830)
  148. - Added NXP Hexiwear example in `IDE/HEXIWEAR`.
  149. - Added wolfSSL_write_dup() to create write only WOLFSSL object for concurrent access
  150. - Fixes for TLS elliptic curve selection on private key import.
  151. - Fixes for RNG with Intel rdrand and rdseed speedups.
  152. - Improved performance with Intel rdrand to use full 64-bit output
  153. - Added new --enable-intelrand option to indicate use of RDRAND preference for RNG source
  154. - Removed RNG ARC4 support
  155. - Added ECC helpers to get size and id from curve name.
  156. - Added ECC Cofactor DH (ECC-CDH) support
  157. - Added ECC private key only import / export functions.
  158. - Added PKCS8 create function
  159. - Improvements to TLS layer CTX handling for switching keys / certs.
  160. - Added check for duplicate certificate policy OID in certificates.
  161. - Normal math speed-up to not allocate on mp_int and defer until mp_grow
  162. - Reduce heap usage with fast math when not using ALT_ECC_SIZE
  163. - Fixes for building CRL with Windows
  164. - Added support for inline CRL lookup when HAVE_CRL_IO is defined
  165. - Added port for tenAsys INtime RTOS
  166. - Improvements to uTKernel port (WOLFSSL_uTKERNEL2)
  167. - Updated WPA Supplicant support
  168. - Added support for Nginx
  169. - Update stunnel port for version 5.40
  170. - Fixes for STM32 hardware crypto acceleration
  171. - Extended test code coverage in bundled test.c
  172. - Added a sanity check for minimum authentication tag size with AES-GCM. Thanks to Yueh-Hsun Lin and Peng Li at KNOX Security at Samsung Research America for suggesting this.
  173. - Added a sanity check that subject key identifier is marked as non-critical and a check that no policy OIDS appear more than once in the cert policies extension. Thanks to the report from Professor Zhenhua Duan, Professor Cong Tian, and Ph.D candidate Chu Chen from Institute of Computing Theory and Technology (ICTT) of Xidian University, China. Profs. Zhenhua Duan and Cong Tian are supervisors of Ph.D candidate Chu Chen.
  174. This release of wolfSSL fixes 5 low and 1 medium level security vulnerability.
  175. 3 Low level fixes reported by Yueh-Hsun Lin and Peng Li from KNOX Security, Samsung Research America.
  176. - Fix for out of bounds memory access in wc_DhParamsLoad() when GetLength() returns a zero. Before this fix there is a case where wolfSSL would read out of bounds memory in the function wc_DhParamsLoad.
  177. - Fix for DH key accepted by wc_DhAgree when the key was malformed.
  178. - Fix for a double free case when adding CA cert into X509_store.
  179. Low level fix for memory management with static memory feature enabled. By default static memory is disabled. Thanks to GitHub user hajjihraf for reporting this.
  180. Low level fix for out of bounds write in the function wolfSSL_X509_NAME_get_text_by_NID. This function is not used by TLS or crypto operations but could result in a buffer out of bounds write by one if called explicitly in an application. Discovered by Aleksandar Nikolic of Cisco Talos. http://talosintelligence.com/vulnerability-reports/
  181. Medium level fix for check on certificate signature. There is a case in release versions 3.9.10, 3.10.0 and 3.10.2 where a corrupted signature on a peer certificate would not be properly flagged. Thanks to Wens Lo, James Tsai, Kenny Chang, and Oscar Yang at Castles Technology.
  182. See INSTALL file for build instructions.
  183. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  184. ********* wolfSSL (Formerly CyaSSL) Release 3.10.2 (2/10/2017)
  185. Release 3.10.2 of wolfSSL has bug fixes and new features including:
  186. - Poly1305 Windows macros fix. Thanks to GitHub user Jay Satiro
  187. - Compatibility layer expanded with multiple functions added
  188. - Improve fp_copy performance with ALT_ECC_SIZE
  189. - OCSP updates and improvements
  190. - Fixes for IAR EWARM 8 compiler warnings
  191. - Reduce stack usage with ECC_CACHE_CURVE disabled
  192. - Added ECC export raw for public and private key
  193. - Fix for NO_ASN_TIME build
  194. - Supported curves extensions now populated by default
  195. - Add DTLS build without big integer math
  196. - Fix for static memory feature with wc_ecc_verify_hash_ex and not SHAMIR
  197. - Added PSK interoperability testing to script bundled with wolfSSL
  198. - Fix for Python wrapper random number generation. Compiler optimizations with Python could place the random number in same buffer location each time. Thanks to GitHub user Erik Bray (embray)
  199. - Fix for tests on unaligned memory with static memory feature
  200. - Add macro WOLFSSL_NO_OCSP_OPTIONAL_CERTS to skip optional OCSP certificates
  201. - Sanity checks on NULL arguments added to wolfSSL_set_fd and wolfSSL_DTLS_SetCookieSecret
  202. - mp_jacobi stack use reduced, thanks to Szabi Tolnai for providing a solution to reduce stack usage
  203. This release of wolfSSL fixes 2 low and 1 medium level security vulnerability.
  204. Low level fix of buffer overflow for when loading in a malformed temporary DH file. Thanks to Yueh-Hsun Lin and Peng Li from KNOX Security, Samsung Research America for the report.
  205. Medium level fix for processing of OCSP response. If using OCSP without hard faults enforced and no alternate revocation checks like OCSP stapling then it is recommended to update.
  206. Low level fix for potential cache attack on RSA operations. If using wolfSSL RSA on a server that other users can have access to monitor the cache, then it is recommended to update wolfSSL. Thanks to Andreas Zankl, Johann Heyszl and Georg Sigl at Fraunhofer AISEC for the initial report.
  207. See INSTALL file for build instructions.
  208. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  209. ********* wolfSSL (Formerly CyaSSL) Release 3.10.0 (12/21/2016)
  210. Release 3.10.0 of wolfSSL has bug fixes and new features including:
  211. - Added support for SHA224
  212. - Added scrypt feature
  213. - Build for Intel SGX use, added in directory IDE/WIN-SGX
  214. - Fix for ChaCha20-Poly1305 ECDSA certificate type request
  215. - Enhance PKCS#7 with ECC enveloped data and AES key wrap support
  216. - Added support for RIOT OS
  217. - Add support for parsing PKCS#12 files
  218. - ECC performance increased with custom curves
  219. - ARMv8 expanded to AArch32 and performance increased
  220. - Added ANSI-X9.63-KDF support
  221. - Port to STM32 F2/F4 CubeMX
  222. - Port to Atmel ATECC508A board
  223. - Removed fPIE by default when wolfSSL library is compiled
  224. - Update to Python wrapper, dropping DES and adding wc_RSASetRNG
  225. - Added support for NXP K82 hardware acceleration
  226. - Added SCR client and server verify check
  227. - Added a disable rng option with autoconf
  228. - Added more tests vectors to test.c with AES-CTR
  229. - Updated DTLS session export version number
  230. - Updated DTLS for 64 bit sequence numbers
  231. - Fix for memory management with TI and WOLFSSL_SMALL_STACK
  232. - Hardening RSA CRT to be constant time
  233. - Fix uninitialized warning with IAR compiler
  234. - Fix for C# wrapper example IO hang on unexpected connection termination
  235. This release of wolfSSL fixes a low level security vulnerability. The vulnerability reported was a potential cache attack on RSA operations. If using wolfSSL RSA on a server that other users can have access to monitor the cache, then it is recommended to update wolfSSL. Thanks to Andreas Zankl, Johann Heyszl and Georg Sigl at Fraunhofer AISEC for the report. More information will be available on our site:
  236. https://wolfssl.com/wolfSSL/security/vulnerabilities.php
  237. See INSTALL file for build instructions.
  238. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  239. ********* wolfSSL (Formerly CyaSSL) Release 3.9.10 (9/23/2016)
  240. Release 3.9.10 of wolfSSL has bug fixes and new features including:
  241. - Default configure option changes:
  242. 1. DES3 disabled by default
  243. 2. ECC Supported Curves Extension enabled by default
  244. 3. New option Extended Master Secret enabled by default
  245. - Added checking CA certificate path length, and new test certs
  246. - Fix to DSA pre padding and sanity check on R/S values
  247. - Added CTX level RNG for single-threaded builds
  248. - Intel RDSEED enhancements
  249. - ARMv8 hardware acceleration support for AES-CBC/CTR/GCM, SHA-256
  250. - Arduino support updates
  251. - Added the Extended Master Secret TLS extension
  252. 1. Enabled by default in configure options, API to disable
  253. 2. Added support for Extended Master Secret to sniffer
  254. - OCSP fix with issuer key hash, lookup refactor
  255. - Added support for Frosted OS
  256. - Added support for DTLS over SCTP
  257. - Added support for static memory with wolfCrypt
  258. - Fix to ECC Custom Curve support
  259. - Support for asynchronous wolfCrypt RSA and TLS client
  260. - Added distribution build configure option
  261. - Update the test certificates
  262. This release of wolfSSL fixes medium level security vulnerabilities. Fixes for
  263. potential AES, RSA, and ECC side channel leaks is included that a local user
  264. monitoring the same CPU core cache could exploit. VM users, hyper-threading
  265. users, and users where potential attackers have access to the CPU cache will
  266. need to update if they utilize AES, RSA private keys, or ECC private keys.
  267. Thanks to Gorka Irazoqui Apecechea and Xiaofei Guo from Intel Corporation for
  268. the report. More information will be available on our site:
  269. https://wolfssl.com/wolfSSL/security/vulnerabilities.php
  270. See INSTALL file for build instructions.
  271. More info can be found on-line at http://wolfssl.com/wolfSSL/Docs.html
  272. ********* wolfSSL (Formerly CyaSSL) Release 3.9.8 (7/29/2016)
  273. Release 3.9.8 of wolfSSL has bug fixes and new features including:
  274. - Add support for custom ECC curves.
  275. - Add cipher suite ECDHE-ECDSA-AES128-CCM.
  276. - Add compkey enable option. This option is for compressed ECC keys.
  277. - Add in the option to use test.h without gettimeofday function using the macro
  278. WOLFSSL_USER_CURRTIME.
  279. - Add RSA blinding for private key operations. Enable option of harden which is
  280. on by default. This negates timing attacks.
  281. - Add ECC and TLS support for all SECP, Koblitz and Brainpool curves.
  282. - Add helper functions for static memory option to allow getting optimum buffer
  283. sizes.
  284. - Update DTLS behavior on bad MAC. DTLS silently drops packets with bad MACs now.
  285. - Update fp_isprime function from libtom enchancement/cleanup repository.
  286. - Update sanity checks on inputs and return values for AES-CMAC.
  287. - Update wolfSSL for use with MYSQL v5.6.30.
  288. - Update LPCXpresso eclipse project to not include misc.c when not needed.
  289. - Fix retransmit of last DTLS flight with timeout notification. The last flight
  290. is no longer retransmitted on timeout.
  291. - Fixes to some code in math sections for compressed ECC keys. This includes
  292. edge cases for buffer size on allocation and adjustments for compressed curves
  293. build. The code and full list can be found on github with pull request #456.
  294. - Fix function argument mismatch for build with secure renegotiation.
  295. - X.509 bug fixes for reading in malformed certificates, reported by researchers
  296. at Columbia University
  297. - Fix GCC version 6 warning about hard tabs in poly1305.c. This was a warning
  298. produced by GCC 6 trying to determine the intent of code.
  299. - Fixes for static memory option. Including avoid potential race conditions with
  300. counters, decrement handshake counter correctly.
  301. - Fix anonymous cipher with Diffie Hellman on the server side. Was an issue of a
  302. possible buffer corruption. For information and code see pull request #481.
  303. - One high level security fix that requires an update for use with static RSA
  304. cipher suites was submitted. This fix was the addition of RSA blinding for
  305. private RSA operations. We recommend servers who allow static RSA cipher
  306. suites to also generate new private RSA keys. Static RSA cipher suites are
  307. turned off by default.
  308. See INSTALL file for build instructions.
  309. More info can be found on-line at //http://wolfssl.com/wolfSSL/Docs.html
  310. ********* wolfSSL (Formerly CyaSSL) Release 3.9.6 (6/14/2016)
  311. Release 3.9.6 of wolfSSL has bug fixes and new features including:
  312. - Add staticmemory feature
  313. - Add public wc_GetTime API with base64encode feature
  314. - Add AES CMAC algorithm
  315. - Add DTLS sessionexport feature
  316. - Add python wolfCrypt wrapper
  317. - Add ECC encrypt/decrypt benchmarks
  318. - Add dynamic session tickets
  319. - Add eccshamir option
  320. - Add Whitewood netRandom support --with-wnr
  321. - Add embOS port
  322. - Add minimum key size checks for RSA and ECC
  323. - Add STARTTLS support to examples
  324. - Add uTasker port
  325. - Add asynchronous crypto and wolf event support
  326. - Add compile check for misc.c with inline
  327. - Add RNG benchmark
  328. - Add reduction to stack usage with hash-based RNG
  329. - Update STM32F2_CRYPTO port with additional algorithms supported
  330. - Update MDK5 projects
  331. - Update AES-NI
  332. - Fix for STM32 with STM32F2_HASH defined
  333. - Fix for building with MinGw
  334. - Fix ECC math bugs with ALT_ECC_SIZE and key sizes over 256 bit (1)
  335. - Fix certificate buffers github issue #422
  336. - Fix decrypt max size with RSA OAEP
  337. - Fix DTLS sanity check with DTLS timeout notification
  338. - Fix free of WOLFSSL_METHOD on failure to create CTX
  339. - Fix memory leak in failure case with wc_RsaFunction (2)
  340. - No high level security fixes that requires an update though we always
  341. recommend updating to the latest
  342. - (1) Code changes for ECC fix can be found at pull requests #411, #416, and #428
  343. - (2) Builds using RSA with using normal math and not RSA_LOW_MEM should update
  344. - Tag 3.9.6w is for a Windows example echoserver fix
  345. See INSTALL file for build instructions.
  346. More info can be found on-line at //http://wolfssl.com/wolfSSL/Docs.html
  347. ********* wolfSSL (Formerly CyaSSL) Release 3.9.0 (3/18/2016)
  348. Release 3.9.0 of wolfSSL has bug fixes and new features including:
  349. - Add new leantls configuration
  350. - Add RSA OAEP padding at wolfCrypt level
  351. - Add Arduino port and example client
  352. - Add fixed point DH operation
  353. - Add CUSTOM_RAND_GENRATE_SEED_OS and CUSTOM_RAND_GENERATE_BLOCK
  354. - Add ECDHE-PSK cipher suites
  355. - Add PSK ChaCha20-Poly1305 cipher suites
  356. - Add option for fail on no peer cert except PSK suites
  357. - Add port for Nordic nRF51
  358. - Add additional ECC NIST test vectors for 256, 384 and 521
  359. - Add more granular ECC, Ed25519/Curve25519 and AES configs
  360. - Update to ChaCha20-Poly1305
  361. - Update support for Freescale KSDK 1.3.0
  362. - Update DER buffer handling code, refactoring and reducing memory
  363. - Fix to AESNI 192 bit key expansion
  364. - Fix to C# wrapper character encoding
  365. - Fix sequence number issue with DTLS epoch 0 messages
  366. - Fix RNGA with K64 build
  367. - Fix ASN.1 X509 V3 certificate policy extension parsing
  368. - Fix potential free of uninitialized RSA key in asn.c
  369. - Fix potential underflow when using ECC build with FP_ECC
  370. - Fixes for warnings in Visual Studio 2015 build
  371. - No high level security fixes that requires an update though we always
  372. recommend updating to the latest
  373. - FP_ECC is off by default, users with it enabled should update for the zero
  374. sized hash fix
  375. See INSTALL file for build instructions.
  376. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  377. ********* wolfSSL (Formerly CyaSSL) Release 3.8.0 (12/30/2015)
  378. Release 3.8.0 of wolfSSL has bug fixes and new features including:
  379. - Example client/server with VxWorks
  380. - AESNI use with AES-GCM
  381. - Stunnel compatibility enhancements
  382. - Single shot hash and signature/verify API added
  383. - Update cavium nitrox port
  384. - LPCXpresso IDE support added
  385. - C# wrapper to support wolfSSL use by a C# program
  386. - (BETA version)OCSP stapling added
  387. - Update OpenSSH compatibility
  388. - Improve DTLS handshake when retransmitting finished message
  389. - fix idea_mult() for 16 and 32bit systems
  390. - fix LowResTimer on Microchip ports
  391. - No high level security fixes that requires an update though we always
  392. recommend updating to the latest
  393. See INSTALL file for build instructions.
  394. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  395. ********* wolfSSL (Formerly CyaSSL) Release 3.7.0 (10/26/2015)
  396. Release 3.7.0 of wolfSSL has bug fixes and new features including:
  397. - ALPN extension support added for HTTP2 connections with --enable-alpn
  398. - Change of example/client/client max fragment flag -L -> -F
  399. - Throughput benchmarking, added scripts/benchmark.test
  400. - Sniffer API ssl_FreeDecodeBuffer added
  401. - Addition of AES_GCM to Sniffer
  402. - Sniffer change to handle unlimited decrypt buffer size
  403. - New option for the sniffer where it will try to pick up decoding after a
  404. sequence number acknowldgement fault. Also includes some additional stats.
  405. - JNI API setter and getter function for jobject added
  406. - User RSA crypto plugin abstraction. An example placed in wolfcrypt/user-crypto
  407. - fix to asn configuration bug
  408. - AES-GCM/CCM fixes.
  409. - Port for Rowley added
  410. - Rowley Crossworks bare metal examples added
  411. - MDK5-ARM project update
  412. - FreeRTOS support updates.
  413. - VXWorks support updates.
  414. - Added the IDEA cipher and support in wolfSSL.
  415. - Update wolfSSL website CA.
  416. - CFLAGS is usable when configuring source.
  417. - No high level security fixes that requires an update though we always
  418. recommend updating to the latest
  419. See INSTALL file for build instructions.
  420. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  421. ********* wolfSSL (Formerly CyaSSL) Release 3.6.8 (09/17/2015)
  422. Release 3.6.8 of wolfSSL fixes two high severity vulnerabilities. It also
  423. includes bug fixes and new features including:
  424. - Two High level security fixes, all users SHOULD update.
  425. a) If using wolfSSL for DTLS on the server side of a publicly accessible
  426. machine you MUST update.
  427. b) If using wolfSSL for TLS on the server side with private RSA keys allowing
  428. ephemeral key exchange without low memory optimizations you MUST update and
  429. regenerate the private RSA keys.
  430. Please see https://www.wolfssl.com/wolfSSL/Blog/Blog.html for more details
  431. - No filesystem build fixes for various configurations
  432. - Certificate generation now supports several extensions including KeyUsage,
  433. SKID, AKID, and Certificate Policies
  434. - CRLs can be loaded from buffers as well as files now
  435. - SHA-512 Certificate Signing generation
  436. - Fixes for sniffer reassembly processing
  437. See INSTALL file for build instructions.
  438. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  439. ********* wolfSSL (Formerly CyaSSL) Release 3.6.6 (08/20/2015)
  440. Release 3.6.6 of wolfSSL has bug fixes and new features including:
  441. - OpenSSH compatibility with --enable-openssh
  442. - stunnel compatibility with --enable-stunnel
  443. - lighttpd compatibility with --enable-lighty
  444. - SSLv3 is now disabled by default, can be enabled with --enable-sslv3
  445. - Ephemeral key cipher suites only are now supported by default
  446. To enable static ECDH cipher suites define WOLFSSL_STATIC_DH
  447. To enable static RSA cipher suites define WOLFSSL_STATIC_RSA
  448. To enable static PSK cipher suites define WOLFSSL_STATIC_PSK
  449. - Added QSH (quantum-safe handshake) extension with --enable-ntru
  450. - SRP is now part of wolfCrypt, enable with --enabe-srp
  451. - Certificate handshake messages can now be sent fragmented if the record
  452. size is smaller than the total message size, no user action required.
  453. - DTLS duplicate message fixes
  454. - Visual Studio project files now support DLL and static builds for 32/64bit.
  455. - Support for new Freescale I/O
  456. - FreeRTOS FIPS support
  457. - No high level security fixes that requires an update though we always
  458. recommend updating to the latest
  459. See INSTALL file for build instructions.
  460. More information can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  461. **************** wolfSSL (Formerly CyaSSL) Release 3.6.0 (06/19/2015)
  462. Release 3.6.0 of wolfSSL has bug fixes and new features including:
  463. - Max Strength build that only allows TLSv1.2, AEAD ciphers, and PFS (Perfect
  464. Forward Secrecy). With --enable-maxstrength
  465. - Server side session ticket support, the example server and echoserver use the
  466. example callback myTicketEncCb(), see wolfSSL_CTX_set_TicketEncCb()
  467. - FIPS version submitted for iOS.
  468. - TI Crypto Hardware Acceleration
  469. - DTLS fragmentation fixes
  470. - ECC key check validation with wc_ecc_check_key()
  471. - 32bit code options to reduce memory for Curve25519 and Ed25519
  472. - wolfSSL JNI build switch with --enable-jni
  473. - PicoTCP support improvements
  474. - DH min ephemeral key size enforcement with wolfSSL_CTX_SetMinDhKey_Sz()
  475. - KEEP_PEER_CERT and AltNames can now be used together
  476. - ChaCha20 big endian fix
  477. - SHA-512 signature algorithm support for key exchange and verify messages
  478. - ECC make key crash fix on RNG failure, ECC users must update.
  479. - Improvements to usage of time code.
  480. - Improvements to VS solution files.
  481. - GNU Binutils 2.24 (and late 2.23) ld has problems with some debug builds,
  482. to fix an ld error add C_EXTRA_FLAGS="-fdebug-types-section -g1".
  483. - No high level security fixes that requires an update though we always
  484. recommend updating to the latest (except note 14, ecc RNG failure)
  485. See INSTALL file for build instructions.
  486. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  487. *****************wolfSSL (Formerly CyaSSL) Release 3.4.6 (03/30/2015)
  488. Release 3.4.6 of wolfSSL has bug fixes and new features including:
  489. - Intel Assembly Speedups using instructions rdrand, rdseed, aesni, avx1/2,
  490. rorx, mulx, adox, adcx . They can be enabled with --enable-intelasm.
  491. These speedup the use of RNG, SHA2, and public key algorithms.
  492. - Ed25519 support at the crypto level. Turn on with --enable-ed25519. Examples
  493. in wolcrypt/test/test.c ed25519_test().
  494. - Post Handshake Memory reductions. wolfSSL can now hold less than 1,000 bytes
  495. of memory per secure connection including cipher state.
  496. - wolfSSL API and wolfCrypt API fixes, you can still include the cyassl and
  497. ctaocrypt headers which will enable the compatibility APIs for the
  498. foreseeable future
  499. - INSTALL file to help direct users to build instructions for their environment
  500. - For ECC users with the normal math library a fix that prevents a crash when
  501. verify signature fails. Users of 3.4.0 with ECC and the normal math library
  502. must update
  503. - RC4 is now disabled by default in autoconf mode
  504. - AES-GCM and ChaCha20/Poly1305 are now enabled by default to make AEAD ciphers
  505. available without a switch
  506. - External ChaCha-Poly AEAD API, thanks to Andrew Burks for the contribution
  507. - DHE-PSK cipher suites can now be built without ASN or Cert support
  508. - Fix some NO MD5 build issues with optional features
  509. - Freescale CodeWarrior project updates
  510. - ECC curves can be individually turned on/off at build time.
  511. - Sniffer handles Cert Status message and other minor fixes
  512. - SetMinVersion() at the wolfSSL Context level instead of just SSL session level
  513. to allow minimum protocol version allowed at runtime
  514. - RNG failure resource cleanup fix
  515. - No high level security fixes that requires an update though we always
  516. recommend updating to the latest (except note 6 use case of ecc/normal math)
  517. See INSTALL file for build instructions.
  518. More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
  519. *****************wolfSSL (Formerly CyaSSL) Release 3.4.0 (02/23/2015)
  520. Release 3.4.0 wolfSSL has bug fixes and new features including:
  521. - wolfSSL API and wolfCrypt API, you can still include the cyassl and ctaocrypt
  522. headers which will enable the compatibility APIs for the foreseeable future
  523. - Example use of the wolfCrypt API can be found in wolfcrypt/test/test.c
  524. - Example use of the wolfSSL API can be found in examples/client/client.c
  525. - Curve25519 now supported at the wolfCrypt level, wolfSSL layer coming soon
  526. - Improvements in the build configuration under AIX
  527. - Microchip Pic32 MZ updates
  528. - TIRTOS updates
  529. - PowerPC updates
  530. - Xcode project update
  531. - Bidirectional shutdown examples in client/server with -w (wait for full
  532. shutdown) option
  533. - Cycle counts on benchmarks for x86_64, more coming soon
  534. - ALT_ECC_SIZE for reducing ecc heap use with fastmath when also using large RSA
  535. keys
  536. - Various compile warnings
  537. - Scan-build warning fixes
  538. - Changed a memcpy to memmove in the sniffer (if using sniffer please update)
  539. - No high level security fixes that requires an update though we always
  540. recommend updating to the latest
  541. ***********CyaSSL Release 3.3.0 (12/05/2014)
  542. - Countermeasuers for Handshake message duplicates, CHANGE CIPHER without
  543. FINISHED, and fast forward attempts. Thanks to Karthikeyan Bhargavan from
  544. the Prosecco team at INRIA Paris-Rocquencourt for the report.
  545. - FIPS version submitted
  546. - Removes SSLv2 Client Hello processing, can be enabled with OLD_HELLO_ALLOWED
  547. - User can set minimum downgrade version with CyaSSL_SetMinVersion()
  548. - Small stack improvements at TLS/SSL layer
  549. - TLS Master Secret generation and Key Expansion are now exposed
  550. - Adds client side Secure Renegotiation, * not recommended *
  551. - Client side session ticket support, not fully tested with Secure Renegotiation
  552. - Allows up to 4096bit DHE at TLS Key Exchange layer
  553. - Handles non standard SessionID sizes in Hello Messages
  554. - PicoTCP Support
  555. - Sniffer now supports SNI Virtual Hosts
  556. - Sniffer now handles non HTTPS protocols using STARTTLS
  557. - Sniffer can now parse records with multiple messages
  558. - TI-RTOS updates
  559. - Fix for ColdFire optimized fp_digit read only in explicit 32bit case
  560. - ADH Cipher Suite ADH-AES128-SHA for EAP-FAST
  561. The CyaSSL manual is available at:
  562. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  563. and comments about the new features please check the manual.
  564. ***********CyaSSL Release 3.2.0 (09/10/2014)
  565. Release 3.2.0 CyaSSL has bug fixes and new features including:
  566. - ChaCha20 and Poly1305 crypto and suites
  567. - Small stack improvements for OCSP, CRL, TLS, DTLS
  568. - NTRU Encrypt and Decrypt benchmarks
  569. - Updated Visual Studio project files
  570. - Updated Keil MDK5 project files
  571. - Fix for DTLS sequence numbers with GCM/CCM
  572. - Updated HashDRBG with more secure struct declaration
  573. - TI-RTOS support and example Code Composer Studio project files
  574. - Ability to get enabled cipher suites, CyaSSL_get_ciphers()
  575. - AES-GCM/CCM/Direct support for Freescale mmCAU and CAU
  576. - Sniffer improvement checking for decrypt key setup
  577. - Support for raw ECC key import
  578. - Ability to convert ecc_key to DER, EccKeyToDer()
  579. - Security fix for RSA Padding check vulnerability reported by Intel Security
  580. Advanced Threat Research team
  581. The CyaSSL manual is available at:
  582. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  583. and comments about the new features please check the manual.
  584. ************ CyaSSL Release 3.1.0 (07/14/2014)
  585. Release 3.1.0 CyaSSL has bug fixes and new features including:
  586. - Fix for older versions of icc without 128-bit type
  587. - Intel ASM syntax for AES-NI
  588. - Updated NTRU support, keygen benchmark
  589. - FIPS check for minimum required HMAC key length
  590. - Small stack (--enable-smallstack) improvements for PKCS#7, ASN
  591. - TLS extension support for DTLS
  592. - Default I/O callbacks external to user
  593. - Updated example client with bad clock test
  594. - Ability to set optional ECC context info
  595. - Ability to enable/disable DH separate from opensslextra
  596. - Additional test key/cert buffers for CA and server
  597. - Updated example certificates
  598. The CyaSSL manual is available at:
  599. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  600. and comments about the new features please check the manual.
  601. ************ CyaSSL Release 3.0.2 (05/30/2014)
  602. Release 3.0.2 CyaSSL has bug fixes and new features including:
  603. - Added the following cipher suites:
  604. * TLS_PSK_WITH_AES_128_GCM_SHA256
  605. * TLS_PSK_WITH_AES_256_GCM_SHA384
  606. * TLS_PSK_WITH_AES_256_CBC_SHA384
  607. * TLS_PSK_WITH_NULL_SHA384
  608. * TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
  609. * TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
  610. * TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
  611. * TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
  612. * TLS_DHE_PSK_WITH_NULL_SHA256
  613. * TLS_DHE_PSK_WITH_NULL_SHA384
  614. * TLS_DHE_PSK_WITH_AES_128_CCM
  615. * TLS_DHE_PSK_WITH_AES_256_CCM
  616. - Added AES-NI support for Microsoft Visual Studio builds.
  617. - Changed small stack build to be disabled by default.
  618. - Updated the Hash DRBG and provided a configure option to enable.
  619. The CyaSSL manual is available at:
  620. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  621. and comments about the new features please check the manual.
  622. ************ CyaSSL Release 3.0.0 (04/29/2014)
  623. Release 3.0.0 CyaSSL has bug fixes and new features including:
  624. - FIPS release candidate
  625. - X.509 improvements that address items reported by Suman Jana with security
  626. researchers at UT Austin and UC Davis
  627. - Small stack size improvements, --enable-smallstack. Offloads large local
  628. variables to the heap. (Note this is not complete.)
  629. - Updated AES-CCM-8 cipher suites to use approved suite numbers.
  630. The CyaSSL manual is available at:
  631. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  632. and comments about the new features please check the manual.
  633. ************ CyaSSL Release 2.9.4 (04/09/2014)
  634. Release 2.9.4 CyaSSL has bug fixes and new features including:
  635. - Security fixes that address items reported by Ivan Fratric of the Google
  636. Security Team
  637. - X.509 Unknown critical extensions treated as errors, report by Suman Jana with
  638. security researchers at UT Austin and UC Davis
  639. - Sniffer fixes for corrupted packet length and Jumbo frames
  640. - ARM thumb mode assembly fixes
  641. - Xcode 5.1 support including new clang
  642. - PIC32 MZ hardware support
  643. - CyaSSL Object has enough room to read the Record Header now w/o allocs
  644. - FIPS wrappers for AES, 3DES, SHA1, SHA256, SHA384, HMAC, and RSA.
  645. - A sample I/O pool is demonstrated with --enable-iopool to overtake memory
  646. handling and reduce memory fragmentation on I/O large sizes
  647. The CyaSSL manual is available at:
  648. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  649. and comments about the new features please check the manual.
  650. ************ CyaSSL Release 2.9.0 (02/07/2014)
  651. Release 2.9.0 CyaSSL has bug fixes and new features including:
  652. - Freescale Kinetis RNGB support
  653. - Freescale Kinetis mmCAU support
  654. - TLS Hello extensions
  655. - ECC
  656. - Secure Renegotiation (null)
  657. - Truncated HMAC
  658. - SCEP support
  659. - PKCS #7 Enveloped data and signed data
  660. - PKCS #10 Certificate Signing Request generation
  661. - DTLS sliding window
  662. - OCSP Improvements
  663. - API change to integrate into Certificate Manager
  664. - IPv4/IPv6 agnostic
  665. - example client/server support for OCSP
  666. - OCSP nonces are optional
  667. - GMAC hashing
  668. - Windows build additions
  669. - Windows CYGWIN build fixes
  670. - Updated test certificates
  671. - Microchip MPLAB Harmony support
  672. - Update autoconf scripts
  673. - Additional X.509 inspection functions
  674. - ECC encrypt/decrypt primitives
  675. - ECC Certificate generation
  676. The Freescale Kinetis K53 RNGB documentation can be found in Chapter 33 of the
  677. K53 Sub-Family Reference Manual:
  678. http://cache.freescale.com/files/32bit/doc/ref_manual/K53P144M100SF2RM.pdf
  679. Freescale Kinetis K60 mmCAU (AES, DES, 3DES, MD5, SHA, SHA256) documentation
  680. can be found in the "ColdFire/ColdFire+ CAU and Kinetis mmCAU Software Library
  681. User Guide":
  682. http://cache.freescale.com/files/32bit/doc/user_guide/CAUAPIUG.pdf
  683. *****************CyaSSL Release 2.8.0 (8/30/2013)
  684. Release 2.8.0 CyaSSL has bug fixes and new features including:
  685. - AES-GCM and AES-CCM use AES-NI
  686. - NetX default IO callback handlers
  687. - IPv6 fixes for DTLS Hello Cookies
  688. - The ability to unload Certs/Keys after the handshake, CyaSSL_UnloadCertsKeys()
  689. - SEP certificate extensions
  690. - Callback getters for easier resource freeing
  691. - External CYASSL_MAX_ERROR_SZ for correct error buffer sizing
  692. - MacEncrypt and DecryptVerify Callbacks for User Atomic Record Layer Processing
  693. - Public Key Callbacks for ECC and RSA
  694. - Client now sends blank cert upon request if doesn't have one with TLS <= 1.2
  695. The CyaSSL manual is available at:
  696. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  697. and comments about the new features please check the manual.
  698. *****************CyaSSL Release 2.7.0 (6/17/2013)
  699. Release 2.7.0 CyaSSL has bug fixes and new features including:
  700. - SNI support for client and server
  701. - KEIL MDK-ARM projects
  702. - Wildcard check to domain name match, and Subject altnames are checked too
  703. - Better error messages for certificate verification errors
  704. - Ability to discard session during handshake verify
  705. - More consistent error returns across all APIs
  706. - Ability to unload CAs at the CTX or CertManager level
  707. - Authority subject id support for Certificate matching
  708. - Persistent session cache functionality
  709. - Persistent CA cache functionality
  710. - Client session table lookups to push serverID table to library level
  711. - Camellia support to sniffer
  712. - User controllable settings for DTLS timeout values
  713. - Sniffer fixes for caching long lived sessions
  714. - DTLS reliability enhancements for the handshake
  715. - Better ThreadX support
  716. When compiling with Mingw, libtool may give the following warning due to
  717. path conversion errors:
  718. libtool: link: Could not determine host file name corresponding to **
  719. libtool: link: Continuing, but uninstalled executables may not work.
  720. If so, examples and testsuite will have problems when run, showing an
  721. error while loading shared libraries. To resolve, please run "make install".
  722. The CyaSSL manual is available at:
  723. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  724. and comments about the new features please check the manual.
  725. ************** CyaSSL Release 2.6.0 (04/15/2013)
  726. Release 2.6.0 CyaSSL has bug fixes and new features including:
  727. - DTLS 1.2 support including AEAD ciphers
  728. - SHA-3 finalist Blake2 support, it's fast and uses little resources
  729. - SHA-384 cipher suites including ECC ones
  730. - HMAC now supports SHA-512
  731. - Track memory use for example client/server with -t option
  732. - Better IPv6 examples with --enable-ipv6, before if ipv6 examples/tests were
  733. turned on, localhost only was used. Now link-local (with scope ids) and ipv6
  734. hosts can be used as well.
  735. - Xcode v4.6 project for iOS v6.1 update
  736. - settings.h is now checked in all *.c files for true one file setting detection
  737. - Better alignment at SSL layer for hardware crypto alignment needs
  738. * Note, SSL itself isn't friendly to alignment with 5 byte TLS headers and
  739. 13 bytes DTLS headers, but every effort is now made to align with the
  740. CYASSL_GENERAL_ALIGNMENT flag which sets desired alignment requirement
  741. - NO_64BIT flag to turn off 64bit data type accumulators in public key code
  742. * Note, some systems are faster with 32bit accumulators
  743. - --enable-stacksize for example client/server stack use
  744. * Note, modern desktop Operating Systems may add bytes to each stack frame
  745. - Updated compression/decompression with direct crypto access
  746. - All ./configure options are now lowercase only for consistency
  747. - ./configure builds default to fastmath option
  748. * Note, if on ia32 and building in shared mode this may produce a problem
  749. with a missing register being available because of PIC, there are at least
  750. 6 solutions to this:
  751. 1) --disable-fastmath , don't use fastmath
  752. 2) --disable-shared, don't build a shared library
  753. 3) C_EXTRA_FLAGS=-DTFM_NO_ASM , turn off assembly use
  754. 4) use clang, it just seems to work
  755. 5) play around with no PIC options to force all registers being open,
  756. e.g, --without-pic
  757. 6) if static lib is still a problem try removing fPIE
  758. - Many new ./configure switches for option enable/disable for example
  759. * rsa
  760. * dh
  761. * dsa
  762. * md5
  763. * sha
  764. * arc4
  765. * null (allow NULL ciphers)
  766. * oldtls (only use TLS 1.2)
  767. * asn (no certs or public keys allowed)
  768. - ./configure generates cyassl/options.h which allows a header the user can
  769. include in their app to make sure the same options are set at the app and
  770. CyaSSL level.
  771. - autoconf no longer needs serial-tests which lowers version requirements of
  772. automake to 1.11 and autoconf to 2.63
  773. The CyaSSL manual is available at:
  774. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  775. and comments about the new features please check the manual.
  776. ************** CyaSSL Release 2.5.0 (02/04/2013)
  777. Release 2.5.0 CyaSSL has bug fixes and new features including:
  778. - Fix for TLS CBC padding timing attack identified by Nadhem Alfardan and
  779. Kenny Paterson: http://www.isg.rhul.ac.uk/tls/
  780. - Microchip PIC32 (MIPS16, MIPS32) support
  781. - Microchip MPLAB X example projects for PIC32 Ethernet Starter Kit
  782. - Updated CTaoCrypt benchmark app for embedded systems
  783. - 1024-bit test certs/keys and cert/key buffers
  784. - AES-CCM-8 crypto and cipher suites
  785. - Camellia crypto and cipher suites
  786. - Bumped minimum autoconf version to 2.65, automake version to 1.12
  787. - Addition of OCSP callbacks
  788. - STM32F2 support with hardware crypto and RNG
  789. - Cavium NITROX support
  790. CTaoCrypt now has support for the Microchip PIC32 and has been tested with
  791. the Microchip PIC32 Ethernet Starter Kit, the XC32 compiler and
  792. MPLAB X IDE in both MIPS16 and MIPS32 instruction set modes. See the README
  793. located under the <cyassl_root>/mplabx directory for more details.
  794. To add Cavium NITROX support do:
  795. ./configure --with-cavium=/home/user/cavium/software
  796. pointing to your licensed cavium/software directory. Since Cavium doesn't
  797. build a library we pull in the cavium_common.o file which gives a libtool
  798. warning about the portability of this. Also, if you're using the github source
  799. tree you'll need to remove the -Wredundant-decls warning from the generated
  800. Makefile because the cavium headers don't conform to this warning. Currently
  801. CyaSSL supports Cavium RNG, AES, 3DES, RC4, HMAC, and RSA directly at the crypto
  802. layer. Support at the SSL level is partial and currently just does AES, 3DES,
  803. and RC4. RSA and HMAC are slower until the Cavium calls can be utilized in non
  804. blocking mode. The example client turns on cavium support as does the crypto
  805. test and benchmark. Please see the HAVE_CAVIUM define.
  806. CyaSSL is able to use the STM32F2 hardware-based cryptography and random number
  807. generator through the STM32F2 Standard Peripheral Library. For necessary
  808. defines, see the CYASSL_STM32F2 define in settings.h. Documentation for the
  809. STM32F2 Standard Peripheral Library can be found in the following document:
  810. http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00023896.pdf
  811. The CyaSSL manual is available at:
  812. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  813. and comments about the new features please check the manual.
  814. *************** CyaSSL Release 2.4.6 (12/20/2012)
  815. Release 2.4.6 CyaSSL has bug fixes and a few new features including:
  816. - ECC into main version
  817. - Lean PSK build (reduced code size, RAM usage, and stack usage)
  818. - FreeBSD CRL monitor support
  819. - CyaSSL_peek()
  820. - CyaSSL_send() and CyaSSL_recv() for I/O flag setting
  821. - CodeWarrior Support
  822. - MQX Support
  823. - Freescale Kinetis support including Hardware RNG
  824. - autoconf builds use jobserver
  825. - cyassl-config
  826. - Sniffer memory reductions
  827. Thanks to Brian Aker for the improved autoconf system, make rpm, cyassl-config,
  828. warning system, and general good ideas for improving CyaSSL!
  829. The Freescale Kinetis K70 RNGA documentation can be found in Chapter 37 of the
  830. K70 Sub-Family Reference Manual:
  831. http://cache.freescale.com/files/microcontrollers/doc/ref_manual/K70P256M150SF3RM.pdf
  832. The CyaSSL manual is available at:
  833. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  834. and comments about the new features please check the manual.
  835. *************** CyaSSL Release 2.4.0 (10/10/2012)
  836. Release 2.4.0 CyaSSL has bug fixes and a few new features including:
  837. - DTLS reliability
  838. - Reduced memory usage after handshake
  839. - Updated build process
  840. The CyaSSL manual is available at:
  841. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  842. and comments about the new features please check the manual.
  843. *************** CyaSSL Release 2.3.0 (8/10/2012)
  844. Release 2.3.0 CyaSSL has bug fixes and a few new features including:
  845. - AES-GCM crypto and cipher suites
  846. - make test cipher suite checks
  847. - Subject AltName processing
  848. - Command line support for client/server examples
  849. - Sniffer SessionTicket support
  850. - SHA-384 cipher suites
  851. - Verify cipher suite validity when user overrides
  852. - CRL dir monitoring
  853. - DTLS Cookie support, reliability coming soon
  854. The CyaSSL manual is available at:
  855. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  856. and comments about the new features please check the manual.
  857. ***************CyaSSL Release 2.2.0 (5/18/2012)
  858. Release 2.2.0 CyaSSL has bug fixes and a few new features including:
  859. - Initial CRL support (--enable-crl)
  860. - Initial OCSP support (--enable-ocsp)
  861. - Add static ECDH suites
  862. - SHA-384 support
  863. - ECC client certificate support
  864. - Add medium session cache size (1055 sessions)
  865. - Updated unit tests
  866. - Protection against mutex reinitialization
  867. The CyaSSL manual is available at:
  868. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  869. and comments about the new features please check the manual.
  870. ***************CyaSSL Release 2.0.8 (2/24/2012)
  871. Release 2.0.8 CyaSSL has bug fixes and a few new features including:
  872. - A fix for malicious certificates pointed out by Remi Gacogne (thanks)
  873. resulting in NULL pointer use.
  874. - Respond to renegotiation attempt with no_renegoatation alert
  875. - Add basic path support for load_verify_locations()
  876. - Add set Temp EC-DHE key size
  877. - Extra checks on rsa test when porting into
  878. The CyaSSL manual is available at:
  879. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  880. and comments about the new features please check the manual.
  881. ************* CyaSSL Release 2.0.6 (1/27/2012)
  882. Release 2.0.6 CyaSSL has bug fixes and a few new features including:
  883. - Fixes for CA basis constraint check
  884. - CTX reference counting
  885. - Initial unit test additions
  886. - Lean and Mean Windows fix
  887. - ECC benchmarking
  888. - SSMTP build support
  889. - Ability to group handshake messages with set_group_messages(ctx/ssl)
  890. - CA cache addition callback
  891. - Export Base64_Encode for general use
  892. The CyaSSL manual is available at:
  893. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  894. and comments about the new features please check the manual.
  895. ************* CyaSSL Release 2.0.2 (12/05/2011)
  896. Release 2.0.2 CyaSSL has bug fixes and a few new features including:
  897. - CTaoCrypt Runtime library detection settings when directly using the crypto
  898. library
  899. - Default certificate generation now uses SHAwRSA and adds SHA256wRSA generation
  900. - All test certificates now use 2048bit and SHA-1 for better modern browser
  901. support
  902. - Direct AES block access and AES-CTR (counter) mode
  903. - Microchip pic32 support
  904. The CyaSSL manual is available at:
  905. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  906. and comments about the new features please check the manual.
  907. ************* CyaSSL Release 2.0.0rc3 (9/28/2011)
  908. Release 2.0.0rc3 for CyaSSL has bug fixes and a few new features including:
  909. - updated autoconf support
  910. - better make install and uninstall (uses system directories)
  911. - make test / make check
  912. - CyaSSL headers now in <cyassl/*.h>
  913. - CTaocrypt headers now in <cyassl/ctaocrypt/*.h>
  914. - OpenSSL compatibility headers now in <cyassl/openssl/*.h>
  915. - examples and tests all run from home directory so can use certs in ./certs
  916. (see note 1)
  917. So previous applications that used the OpenSSL compatibility header
  918. <openssl/ssl.h> now need to include <cyassl/openssl/ssl.h> instead, no other
  919. changes are required.
  920. Special Thanks to Brian Aker for his autoconf, install, and header patches.
  921. The CyaSSL manual is available at:
  922. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  923. and comments about the new features please check the manual.
  924. ************CyaSSL Release 2.0.0rc2 (6/6/2011)
  925. Release 2.0.0rc2 for CyaSSL has bug fixes and a few new features including:
  926. - bug fixes (Alerts, DTLS with DHE)
  927. - FreeRTOS support
  928. - lwIP support
  929. - Wshadow warnings removed
  930. - asn public header
  931. - CTaoCrypt public headers now all have ctc_ prefix (the manual is still being
  932. updated to reflect this change)
  933. - and more.
  934. This is the 2nd and perhaps final release candidate for version 2.
  935. Please send any comments or questions to support@wolfssl.com.
  936. The CyaSSL manual is available at:
  937. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  938. and comments about the new features please check the manual.
  939. ***********CyaSSL Release 2.0.0rc1 (5/2/2011)
  940. Release 2.0.0rc1 for CyaSSL has many new features including:
  941. - bug fixes
  942. - SHA-256 cipher suites
  943. - Root Certificate Verification (instead of needing all certs in the chain)
  944. - PKCS #8 private key encryption (supports PKCS #5 v1-v2 and PKCS #12)
  945. - Serial number retrieval for x509
  946. - PBKDF2 and PKCS #12 PBKDF
  947. - UID parsing for x509
  948. - SHA-256 certificate signatures
  949. - Client and server can send chains (SSL_CTX_use_certificate_chain_file)
  950. - CA loading can now parse multiple certificates per file
  951. - Dynamic memory runtime hooks
  952. - Runtime hooks for logging
  953. - EDH on server side
  954. - More informative error codes
  955. - More informative logging messages
  956. - Version downgrade more robust (use SSL_v23*)
  957. - Shared build only by default through ./configure
  958. - Compiler visibility is now used, internal functions not polluting namespace
  959. - Single Makefile, no recursion, for faster and simpler building
  960. - Turn on all warnings possible build option, warning fixes
  961. - and more.
  962. Because of all the new features and the multiple OS, compiler, feature-set
  963. options that CyaSSL allows, there may be some configuration fixes needed.
  964. Please send any comments or questions to support@wolfssl.com.
  965. The CyaSSL manual is available at:
  966. http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf. For build instructions
  967. and comments about the new features please check the manual.
  968. ****************** CyaSSL Release 1.9.0 (3/2/2011)
  969. Release 1.9.0 for CyaSSL adds bug fixes, improved TLSv1.2 through testing and
  970. better hash/sig algo ids, --enable-webServer for the yaSSL embedded web server,
  971. improper AES key setup detection, user cert verify callback improvements, and
  972. more.
  973. The CyaSSL manual offering is included in the doc/ directory. For build
  974. instructions and comments about the new features please check the manual.
  975. Please send any comments or questions to support@wolfssl.com.
  976. ****************** CyaSSL Release 1.8.0 (12/23/2010)
  977. Release 1.8.0 for CyaSSL adds bug fixes, x509 v3 CA signed certificate
  978. generation, a C standard library abstraction layer, lower memory use, increased
  979. portability through the os_settings.h file, and the ability to use NTRU cipher
  980. suites when used in conjunction with an NTRU license and library.
  981. The initial CyaSSL manual offering is included in the doc/ directory. For
  982. build instructions and comments about the new features please check the manual.
  983. Please send any comments or questions to support@wolfssl.com.
  984. Happy Holidays.
  985. ********************* CyaSSL Release 1.6.5 (9/9/2010)
  986. Release 1.6.5 for CyaSSL adds bug fixes and x509 v3 self signed certificate
  987. generation.
  988. For general build instructions see doc/Building_CyaSSL.pdf.
  989. To enable certificate generation support add this option to ./configure
  990. ./configure --enable-certgen
  991. An example is included in ctaocrypt/test/test.c and documentation is provided
  992. in doc/CyaSSL_Extensions_Reference.pdf item 11.
  993. ********************** CyaSSL Release 1.6.0 (8/27/2010)
  994. Release 1.6.0 for CyaSSL adds bug fixes, RIPEMD-160, SHA-512, and RSA key
  995. generation.
  996. For general build instructions see doc/Building_CyaSSL.pdf.
  997. To add RIPEMD-160 support add this option to ./configure
  998. ./configure --enable-ripemd
  999. To add SHA-512 support add this option to ./configure
  1000. ./configure --enable-sha512
  1001. To add RSA key generation support add this option to ./configure
  1002. ./configure --enable-keygen
  1003. Please see ctaocrypt/test/test.c for examples and usage.
  1004. For Windows, RIPEMD-160 and SHA-512 are enabled by default but key generation is
  1005. off by default. To turn key generation on add the define CYASSL_KEY_GEN to
  1006. CyaSSL.
  1007. ************* CyaSSL Release 1.5.6 (7/28/2010)
  1008. Release 1.5.6 for CyaSSL adds bug fixes, compatibility for our JSSE provider,
  1009. and a fix for GCC builds on some systems.
  1010. For general build instructions see doc/Building_CyaSSL.pdf.
  1011. To add AES-NI support add this option to ./configure
  1012. ./configure --enable-aesni
  1013. You'll need GCC 4.4.3 or later to make use of the assembly.
  1014. ************** CyaSSL Release 1.5.4 (7/7/2010)
  1015. Release 1.5.4 for CyaSSL adds bug fixes, support for AES-NI, SHA1 speed
  1016. improvements from loop unrolling, and support for the Mongoose Web Server.
  1017. For general build instructions see doc/Building_CyaSSL.pdf.
  1018. To add AES-NI support add this option to ./configure
  1019. ./configure --enable-aesni
  1020. You'll need GCC 4.4.3 or later to make use of the assembly.
  1021. *************** CyaSSL Release 1.5.0 (5/11/2010)
  1022. Release 1.5.0 for CyaSSL adds bug fixes, GoAhead WebServer support, sniffer
  1023. support, and initial swig interface support.
  1024. For general build instructions see doc/Building_CyaSSL.pdf.
  1025. To add support for GoAhead WebServer either --enable-opensslExtra or if you
  1026. don't want all the features of opensslExtra you can just define GOAHEAD_WS
  1027. instead. GOAHEAD_WS can be added to ./configure with CFLAGS=-DGOAHEAD_WS or
  1028. you can define it yourself.
  1029. To look at the sniffer support please see the sniffertest app in
  1030. sslSniffer/sslSnifferTest. Build with --enable-sniffer on *nix or use the
  1031. vcproj files on windows. You'll need to have pcap installed on *nix and
  1032. WinPcap on windows.
  1033. A swig interface file is now located in the swig directory for using Python,
  1034. Java, Perl, and others with CyaSSL. This is initial support and experimental,
  1035. please send questions or comments to support@wolfssl.com.
  1036. When doing load testing with CyaSSL, on the echoserver example say, the client
  1037. machine may run out of tcp ephemeral ports, they will end up in the TIME_WAIT
  1038. queue, and can't be reused by default. There are generally two ways to fix
  1039. this. 1) Reduce the length sockets remain on the TIME_WAIT queue or 2) Allow
  1040. items on the TIME_WAIT queue to be reused.
  1041. To reduce the TIME_WAIT length in OS X to 3 seconds (3000 milliseconds)
  1042. sudo sysctl -w net.inet.tcp.msl=3000
  1043. In Linux
  1044. sudo sysctl -w net.ipv4.tcp_tw_reuse=1
  1045. allows reuse of sockets in TIME_WAIT
  1046. sudo sysctl -w net.ipv4.tcp_tw_recycle=1
  1047. works but seems to remove sockets from TIME_WAIT entirely?
  1048. sudo sysctl -w net.ipv4.tcp_fin_timeout=1
  1049. doen't control TIME_WAIT, it controls FIN_WAIT(2) contrary to some posts
  1050. ******************** CyaSSL Release 1.4.0 (2/18/2010)
  1051. Release 1.3.0 for CyaSSL adds bug fixes, better multi TLS/SSL version support
  1052. through SSLv23_server_method(), and improved documentation in the doc/ folder.
  1053. For general build instructions doc/Building_CyaSSL.pdf.
  1054. ******************** CyaSSL Release 1.3.0 (1/21/2010)
  1055. Release 1.3.0 for CyaSSL adds bug fixes, a potential security problem fix,
  1056. better porting support, removal of assert()s, and a complete THREADX port.
  1057. For general build instructions see rc1 below.
  1058. ******************** CyaSSL Release 1.2.0 (11/2/2009)
  1059. Release 1.2.0 for CyaSSL adds bug fixes and session negotiation if first use is
  1060. read or write.
  1061. For general build instructions see rc1 below.
  1062. ******************** CyaSSL Release 1.1.0 (9/2/2009)
  1063. Release 1.1.0 for CyaSSL adds bug fixes, a check against malicious session
  1064. cache use, support for lighttpd, and TLS 1.2.
  1065. To get TLS 1.2 support please use the client and server functions:
  1066. SSL_METHOD *TLSv1_2_server_method(void);
  1067. SSL_METHOD *TLSv1_2_client_method(void);
  1068. CyaSSL was tested against lighttpd 1.4.23. To build CyaSSL for use with
  1069. lighttpd use the following commands from the CyaSSL install dir <CyaSSLDir>:
  1070. ./configure --disable-shared --enable-opensslExtra --enable-fastmath --without-zlib
  1071. make
  1072. make openssl-links
  1073. Then to build lighttpd with CyaSSL use the following commands from the
  1074. lighttpd install dir:
  1075. ./configure --with-openssl --with-openssl-includes=<CyaSSLDir>/include --with-openssl-libs=<CyaSSLDir>/lib LDFLAGS=-lm
  1076. make
  1077. On some systems you may get a linker error about a duplicate symbol for
  1078. MD5_Init or other MD5 calls. This seems to be caused by the lighttpd src file
  1079. md5.c, which defines MD5_Init(), and is included in liblightcomp_la-md5.o.
  1080. When liblightcomp is linked with the SSL_LIBs the linker may complain about
  1081. the duplicate symbol. This can be fixed by editing the lighttpd src file md5.c
  1082. and adding this line to the beginning of the file:
  1083. #if 0
  1084. and this line to the end of the file
  1085. #endif
  1086. Then from the lighttpd src dir do a:
  1087. make clean
  1088. make
  1089. If you get link errors about undefined symbols more than likely the actual
  1090. OpenSSL libraries are found by the linker before the CyaSSL openssl-links that
  1091. point to the CyaSSL library, causing the linker confusion. This can be fixed
  1092. by editing the Makefile in the lighttpd src directory and changing the line:
  1093. SSL_LIB = -lssl -lcrypto
  1094. to
  1095. SSL_LIB = -lcyassl
  1096. Then from the lighttpd src dir do a:
  1097. make clean
  1098. make
  1099. This should remove any confusion the linker may be having with missing symbols.
  1100. For any questions or concerns please contact support@wolfssl.com .
  1101. For general build instructions see rc1 below.
  1102. ******************CyaSSL Release 1.0.6 (8/03/2009)
  1103. Release 1.0.6 for CyaSSL adds bug fixes, an improved session cache, and faster
  1104. math with a huge code option.
  1105. The session cache now defaults to a client mode, also good for embedded servers.
  1106. For servers not under heavy load (less than 200 new sessions per minute), define
  1107. BIG_SESSION_CACHE. If the server will be under heavy load, define
  1108. HUGE_SESSION_CACHE.
  1109. There is now a fasthugemath option for configure. This enables fastmath plus
  1110. even faster math by greatly increasing the code size of the math library. Use
  1111. the benchmark utility to compare public key operations.
  1112. For general build instructions see rc1 below.
  1113. ******************CyaSSL Release 1.0.3 (5/10/2009)
  1114. Release 1.0.3 for CyaSSL adds bug fixes and add increased support for OpenSSL
  1115. compatibility when building other applications.
  1116. Release 1.0.3 includes an alpha release of DTLS for both client and servers.
  1117. This is only for testing purposes at this time. Rebroadcast and reordering
  1118. aren't fully implemented at this time but will be for the next release.
  1119. For general build instructions see rc1 below.
  1120. ******************CyaSSL Release 1.0.2 (4/3/2009)
  1121. Release 1.0.2 for CyaSSL adds bug fixes for a couple I/O issues. Some systems
  1122. will send a SIGPIPE on socket recv() at any time and this should be handled by
  1123. the application by turning off SIGPIPE through setsockopt() or returning from
  1124. the handler.
  1125. Release 1.0.2 includes an alpha release of DTLS for both client and servers.
  1126. This is only for testing purposes at this time. Rebroadcast and reordering
  1127. aren't fully implemented at this time but will be for the next release.
  1128. For general build instructions see rc1 below.
  1129. *****************CyaSSL Release Candidate 3 rc3-1.0.0 (2/25/2009)
  1130. Release Candidate 3 for CyaSSL 1.0.0 adds bug fixes and adds a project file for
  1131. iPhone development with Xcode. cyassl-iphone.xcodeproj is located in the root
  1132. directory. This release also includes a fix for supporting other
  1133. implementations that bundle multiple messages at the record layer, this was
  1134. lost when cyassl i/o was re-implemented but is now fixed.
  1135. For general build instructions see rc1 below.
  1136. *****************CyaSSL Release Candidate 2 rc2-1.0.0 (1/21/2009)
  1137. Release Candidate 2 for CyaSSL 1.0.0 adds bug fixes and adds two new stream
  1138. ciphers along with their respective cipher suites. CyaSSL adds support for
  1139. HC-128 and RABBIT stream ciphers. The new suites are:
  1140. TLS_RSA_WITH_HC_128_SHA
  1141. TLS_RSA_WITH_RABBIT_SHA
  1142. And the corresponding cipher names are
  1143. HC128-SHA
  1144. RABBIT-SHA
  1145. CyaSSL also adds support for building with devkitPro for PPC by changing the
  1146. library proper to use libogc. The examples haven't been changed yet but if
  1147. there's interest they can be. Here's an example ./configure to build CyaSSL
  1148. for devkitPro:
  1149. ./configure --disable-shared CC=/pathTo/devkitpro/devkitPPC/bin/powerpc-gekko-gcc --host=ppc --without-zlib --enable-singleThreaded RANLIB=/pathTo/devkitpro/devkitPPC/bin/powerpc-gekko-ranlib CFLAGS="-DDEVKITPRO -DGEKKO"
  1150. For linking purposes you'll need
  1151. LDFLAGS="-g -mrvl -mcpu=750 -meabi -mhard-float -Wl,-Map,$(notdir $@).map"
  1152. For general build instructions see rc1 below.
  1153. ********************CyaSSL Release Candidate 1 rc1-1.0.0 (12/17/2008)
  1154. Release Candidate 1 for CyaSSL 1.0.0 contains major internal changes. Several
  1155. areas have optimization improvements, less dynamic memory use, and the I/O
  1156. strategy has been refactored to allow alternate I/O handling or Library use.
  1157. Many thanks to Thierry Fournier for providing these ideas and most of the work.
  1158. Because of these changes, this release is only a candidate since some problems
  1159. are probably inevitable on some platform with some I/O use. Please report any
  1160. problems and we'll try to resolve them as soon as possible. You can contact us
  1161. at support@wolfssl.com or todd@wolfssl.com.
  1162. Using TomsFastMath by passing --enable-fastmath to ./configure now uses assembly
  1163. on some platforms. This is new so please report any problems as every compiler,
  1164. mode, OS combination hasn't been tested. On ia32 all of the registers need to
  1165. be available so be sure to pass these options to CFLAGS:
  1166. CFLAGS="-O3 -fomit-frame-pointer"
  1167. OS X will also need -mdynamic-no-pic added to CFLAGS
  1168. Also if you're building in shared mode for ia32 you'll need to pass options to
  1169. LDFLAGS as well on OS X:
  1170. LDFLAGS=-Wl,-read_only_relocs,warning
  1171. This gives warnings for some symbols but seems to work.
  1172. --To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin:
  1173. ./configure
  1174. make
  1175. from the ./testsuite/ directory run ./testsuite
  1176. to make a debug build:
  1177. ./configure --enable-debug --disable-shared
  1178. make
  1179. --To build on Win32
  1180. Choose (Re)Build All from the project workspace
  1181. Run the testsuite program
  1182. *************************CyaSSL version 0.9.9 (7/25/2008)
  1183. This release of CyaSSL adds bug fixes, Pre-Shared Keys, over-rideable memory
  1184. handling, and optionally TomsFastMath. Thanks to Moisés Guimarães for the
  1185. work on TomsFastMath.
  1186. To optionally use TomsFastMath pass --enable-fastmath to ./configure
  1187. Or define USE_FAST_MATH in each project from CyaSSL for MSVC.
  1188. Please use the benchmark routine before and after to see the performance
  1189. difference, on some platforms the gains will be little but RSA encryption
  1190. always seems to be faster. On x86-64 machines with GCC the normal math library
  1191. may outperform the fast one when using CFLAGS=-m64 because TomsFastMath can't
  1192. yet use -m64 because of GCCs inability to do 128bit division.
  1193. **** UPDATE GCC 4.2.1 can now do 128bit division ***
  1194. See notes below (0.2.0) for complete build instructions.
  1195. ****************CyaSSL version 0.9.8 (5/7/2008)
  1196. This release of CyaSSL adds bug fixes, client side Diffie-Hellman, and better
  1197. socket handling.
  1198. See notes below (0.2.0) for complete build instructions.
  1199. ****************CyaSSL version 0.9.6 (1/31/2008)
  1200. This release of CyaSSL adds bug fixes, increased session management, and a fix
  1201. for gnutls.
  1202. See notes below (0.2.0) for complete build instructions.
  1203. ****************CyaSSL version 0.9.0 (10/15/2007)
  1204. This release of CyaSSL adds bug fixes, MSVC 2005 support, GCC 4.2 support,
  1205. IPV6 support and test, and new test certificates.
  1206. See notes below (0.2.0) for complete build instructions.
  1207. ****************CyaSSL version 0.8.0 (1/10/2007)
  1208. This release of CyaSSL adds increased socket support, for non-blocking writes,
  1209. connects, and interrupted system calls.
  1210. See notes below (0.2.0) for complete build instructions.
  1211. ****************CyaSSL version 0.6.3 (10/30/2006)
  1212. This release of CyaSSL adds debug logging to stderr to aid in the debugging of
  1213. CyaSSL on systems that may not provide the best support.
  1214. If CyaSSL is built with debugging support then you need to call
  1215. CyaSSL_Debugging_ON() to turn logging on.
  1216. On Unix use ./configure --enable-debug
  1217. On Windows define DEBUG_CYASSL when building CyaSSL
  1218. To turn logging back off call CyaSSL_Debugging_OFF()
  1219. See notes below (0.2.0) for complete build instructions.
  1220. *****************CyaSSL version 0.6.2 (10/29/2006)
  1221. This release of CyaSSL adds TLS 1.1.
  1222. Note that CyaSSL has certificate verification on by default, unlike OpenSSL.
  1223. To emulate OpenSSL behavior, you must call SSL_CTX_set_verify() with
  1224. SSL_VERIFY_NONE. In order to have full security you should never do this,
  1225. provide CyaSSL with the proper certificates to eliminate impostors and call
  1226. CyaSSL_check_domain_name() to prevent man in the middle attacks.
  1227. See notes below (0.2.0) for build instructions.
  1228. *****************CyaSSL version 0.6.0 (10/25/2006)
  1229. This release of CyaSSL adds more SSL functions, better autoconf, nonblocking
  1230. I/O for accept, connect, and read. There is now an --enable-small configure
  1231. option that turns off TLS, AES, DES3, HMAC, and ERROR_STRINGS, see configure.in
  1232. for the defines. Note that TLS requires HMAC and AES requires TLS.
  1233. See notes below (0.2.0) for build instructions.
  1234. *****************CyaSSL version 0.5.5 (09/27/2006)
  1235. This mini release of CyaSSL adds better input processing through buffered input
  1236. and big message support. Added SSL_pending() and some sanity checks on user
  1237. settings.
  1238. See notes below (0.2.0) for build instructions.
  1239. *****************CyaSSL version 0.5.0 (03/27/2006)
  1240. This release of CyaSSL adds AES support and minor bug fixes.
  1241. See notes below (0.2.0) for build instructions.
  1242. *****************CyaSSL version 0.4.0 (03/15/2006)
  1243. This release of CyaSSL adds TLSv1 client/server support and libtool.
  1244. See notes below for build instructions.
  1245. *****************CyaSSL version 0.3.0 (02/26/2006)
  1246. This release of CyaSSL adds SSLv3 server support and session resumption.
  1247. See notes below for build instructions.
  1248. *****************CyaSSL version 0.2.0 (02/19/2006)
  1249. This is the first release of CyaSSL and its crypt brother, CTaoCrypt. CyaSSL
  1250. is written in ANSI C with the idea of a small code size, footprint, and memory
  1251. usage in mind. CTaoCrypt can be as small as 32K, and the current client
  1252. version of CyaSSL can be as small as 12K.
  1253. The first release of CTaoCrypt supports MD5, SHA-1, 3DES, ARC4, Big Integer
  1254. Support, RSA, ASN parsing, and basic x509 (en/de)coding.
  1255. The first release of CyaSSL supports normal client RSA mode SSLv3 connections
  1256. with support for SHA-1 and MD5 digests. Ciphers include 3DES and RC4.
  1257. --To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin:
  1258. ./configure
  1259. make
  1260. from the ./testsuite/ directory run ./testsuite
  1261. to make a debug build:
  1262. ./configure --enable-debug --disable-shared
  1263. make
  1264. --To build on Win32
  1265. Choose (Re)Build All from the project workspace
  1266. Run the testsuite program
  1267. *** The next release of CyaSSL will support a server and more OpenSSL
  1268. compatibility functions.
  1269. Please send questions or comments to todd@wolfssl.com