libcyassl 3.2.0

libcyassl 3.2.0

测试已测试
Lang语言 CC
许可证 自定义
发布上次发布2014年12月

Radoslav Blasko 维护。



libcyassl 3.2.0

  • wolfSSL

*** 注意,请阅读 ***

注意 1) CyaSSL 现在需要从 CyaSSL 主目录运行所有示例和测试。这是因为它会从 ./certs/ 中找到证书和密钥。尝试维护每个程序从其自己的目录运行的能力,测试套件目录,主要目录(用于 make check/test),以及各种不同的项目布局(带或不带配置)变得越来越困难。现在要运行测试套件,只需执行:

./testsuite/testsuite

或者

make check(在使用 autoconf 时)

在 *nix 或 Windows 上,示例和测试套件将检查当前目录是否为源目录,如果是,则尝试切换到 CyaSSL 主目录。这应该适用于大多数设置情况,如果不适用,只需遵循注意的开头部分并指定完整路径。

注意 2) CyaSSL 在证书验证方面采取的方法与 OpenSSL 不同。客户端的默认策略是验证服务器,这意味着如果您不加载 CA 来验证服务器,您将收到一个连接错误,没有签名者错误来确认失败(-188)。如果您想模仿 OpenSSL 的行为,即使验证服务器失败,SSL_connect 也成功连接并降低安全性,可以通过调用以下命令来完成:

SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);

在调用 SSL_new() 之前;尽管不推荐这样做。

*** 注意结束 ***

CyaSSL 版本 3.2.0(2014 年 10 月 9 日)

版本 3.2.0 的 CyaSSL 包含错误修复和新特性,包括

  • ChaCha20 和 Poly1305 加密和套件
  • OCSP、CRL、TLS、DTLS 的堆改进
  • NTRU 加密和解密基准测试
  • 更新的 Visual Studio 项目文件
  • 更新的 Keil MDK5 项目文件
  • 修复 DTLS 序列号与 GCM/CCM 的错误
  • 更新 HashDRBG,具有更安全的结构声明
  • 支持 TI-RTOS 和示例 Code Composer Studio 项目文件
  • 获取已启用加密套件的权限,CyaSSL_get_ciphers()
  • AES-GCM/CCM/Direct 支持飞思卡尔 mmCAU 和 CAU
  • Sniffer 改进,检查解密密钥设置
  • 支持原始 ECC 密钥导入
  • 将 ecc_key 转换为 DER,EccKeyToDer()
  • 修复 RSA 补码检查漏洞,该漏洞由英特尔安全高级威胁研究小组报告

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL 版本 3.1.0(2014 年 7 月 14 日)

版本 3.1.0 的 CyaSSL 包含错误修复和新特性,包括

  • 适用于不带 128 位类型的旧版本 icc 的修复
  • AES-NI 的 Intel ASM 语法
  • 更新 NTRU 支持,密钥生成基准测试
  • FIPS最短必要HMAC密钥长度检查
  • 针对PKCS#7、ASN的小型栈(--enable-smallstack)改进
  • 为DTLS提供TLS扩展支持
  • 默认I/O回调外部于用户
  • 包含坏时钟测试的更新示例客户端
  • 设置可选ECC上下文信息的能力
  • 能够独立于openSSLextra启用/禁用DH
  • 为CA和服务器提供额外的测试密钥/证书缓冲区
  • 更新示例证书

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL版本3.0.2(2014年5月30日)

版本3.0.2的CyaSSL包含错误修复和新增功能,包括:

  • 添加以下加密套件
    • TLS_PSK_WITH_AES_128_GCM_SHA256
    • TLS_PSK_WITH_AES_256_GCM_SHA384
    • TLS_PSK_WITH_AES_256_CBC_SHA384
    • TLS_PSK_WITH_NULL_SHA384
    • TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
    • TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
    • TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
    • TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
    • TLS_DHE_PSK_WITH_NULL_SHA256
    • TLS_DHE_PSK_WITH_NULL_SHA384
    • TLS_DHE_PSK_WITH_AES_128_CCM
    • TLS_DHE_PSK_WITH_AES_256_CCM
  • 为Microsoft Visual Studio构建添加AES-NI支持。
  • 将小型栈构建更改为默认禁用。
  • 更新了Hash DRBG并发提供了配置选项以启用。

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL版本3.0.0(2014年4月29日)

版本3.0.0的CyaSSL包含错误修复和新增功能,包括:

  • FIPS候选发布版本
  • 解决德克萨斯大学奥斯汀分校和加州大学戴维斯分校安全研究人员Suman Jana报告事项的X.509改进
  • 小型栈大小改进,--enable-smallstack。将大局部变量卸载到堆上。(注意,这还不完整。)
  • 更新AES-CCM-8加密套件以使用批准的套件号码。

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL版本2.9.4(2014年4月9日)

版本2.9.4的CyaSSL包含错误修复和新增功能,包括:

  • 解决谷歌安全团队Ivan Fratric报告事项的安全修复
  • 将X.509未知关键扩展错误对待,报告人为德州大学奥斯汀分校和加州大学戴维斯分校的安全研究人员Suman Jana
  • 涉及损坏包长度和巨帧的嗅探器修复
  • ARM thumb模式汇编修复
  • 包括新clang的Xcode 5.1支持
  • PIC32 MZ硬件支持
  • CyaSSL对象现在有足够的空间读取记录头,而无需分配
  • AES、3DES、SHA1、SHA256、SHA384、HMAC和RSA的FIPS包装器
  • 使用--enable-iopool演示了示例I/O池,以接管内存处理并减少大型I/O上的内存碎片化

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL版本2.9.0(2014年2月7日)

版本2.9.0的CyaSSL包含错误修复和新增功能,包括:

  • 飞思卡尔Kinetis RNGB支持
  • 飞思卡尔Kinetis mmCAU支持
  • TLS Hello扩展
    • ECC
    • 安全重协商(null)
    • 截断HMAC
  • SCEP支持
    • PKCS #7封装数据和支持数据
    • 使用PKCS #10证书签名请求生成
  • DTLS滑动窗口
  • OCSP改进
    • API更改以集成到证书管理器中
    • IPv4/IPv6无关性
    • 示例客户端/服务器对OCSP的支持
    • OCSP非强制性的
  • GMAC散列
  • Windows构建添加
  • Windows CYGWIN构建修复
  • 更新测试证书
  • Microchip MPLAB Harmony支持
  • 更新autoconf脚本
  • 额外的X.509检查功能
  • ECC加密/解密原语
  • ECC证书生成

飞思卡尔Kinetis K53 RNGB文档可在K53子系列参考手册的第33章中找到:[链接](http://cache.freescale.com/files/32bit/doc/ref_manual/K53P144M100SF2RM.pdf)

飞思卡尔Kinetis K60 mmCAU(AES、DES、3DES、MD5、SHA、SHA256)文档可在"ColdFire/ColdFire+ CAU和Kinetis mmCAU软件库用户指南"中找到:[链接](http://cache.freescale.com/files/32bit/doc/user_guide/CAUAPIUG.pdf)

*****************CyaSSL版本2.8.0(2013年8月30日)

版本2.8.0的CyaSSL包含错误修复和新增功能,包括:

  • AES-GCM和AES-CCM使用AES-NI
  • NetX默认IO回调处理程序
  • 针对DTLS Hello Cookies的IPv6修复
  • 握手后卸载证书/密钥的能力,CyaSSL_UnloadCertsKeys()
  • SEP证书扩展
  • 回调getter以简化资源释放
  • 外部CYASSL_MAX_ERROR_SZ用于正确设置错误缓冲区大小
  • 用于用户原子记录层处理的MacEncrypt和DecryptVerify回调
  • ECC和RSA的公钥回调
  • 如果TLS <= 1.2客户端没有证书,则客户端现在会在请求时发送空白证书

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

*****************CyaSSL版本2.7.0(2013年6月17日)

CyaSSL 2.7.0版本包含错误修复和新功能,包括

  • 客户端和服务器对SNI的支持
  • KEIL MDK-ARM项目
  • 通配符检查以匹配域名,并且还会检查主题的altnames
  • 优化的证书验证错误消息
  • 在握手验证期间丢弃会话的能力
  • 所有API中更一致的错误返回
  • 在CTX或CertManager级别卸载CA的能力
  • 对证书匹配的Authority subject id支持
  • 持久化会话缓存功能
  • 持久化CA缓存功能
  • 客户端会话表查找将服务器ID表推送到库级别
  • 对Camellia的支持以支持嗅探器
  • 用户可控制DTLS超时值的设置
  • 对缓存长时间会话的嗅探器修复
  • 握手的安全增强
  • 更好的ThreadX支持

当使用Mingw编译时,由于路径转换错误,libtool可能会给出以下警告

libtool: 链接:无法确定对应于 ** 的主机文件名。libtool: 链接:继续,但未安装的可执行文件可能无法使用。

如果这样,在运行时示例和测试套件将出现问题,显示加载共享库时的错误。要解决,请运行“make install”。

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************** CyaSSL版本2.6.0(2013年4月15日)

CyaSSL 2.6.0版本包含错误修复和新功能,包括

  • DTLS 1.2支持,包括ADAE密码
  • 支持SHA-3决赛选手Blake2,它速度快,资源消耗小
  • 包括ECC在内的SHA-384密码套件
  • HMAC现在支持SHA-512
  • 使用-t选项跟踪示例客户机/服务器的内存使用情况
  • 使用 --enable-ipv6 时更好的IPv6示例,在之前,如果IPv6示例/测试被启用,则只使用localhost。现在可以使用链接本地(带有scope ids)和IPv6主机
  • iOS v6.1更新用Xcode v4.6项目
  • settings.h现在已检查所有*.c文件以进行真正的单文件设置检测
  • SSL层更好的对齐以满足硬件加密对齐需求
    • 注意,SSL本身对与5字节TLS头部和13字节DTLS头部对齐不友好,但现在已尽力以满足CYASSL_GENERAL_ALIGNMENT标志设置的期望对齐要求
  • NO_64BIT标志用于在公钥代码中关闭64位数据类型累加器
    • 注意,一些系统使用32位累加器更快
  • 例子客户端/服务器使用的 --enable-stacksize
    • 注意,现代桌面操作系统可能会为每个堆栈帧添加字节
  • 带有直接加密访问的更新压缩/解压缩
  • 所有 ./configure 选项现在是全部小写,以确保一致性
  • ./configure 默认构建为快速数学选项
    • 注意,如果在ia32上且以共享模式构建,可能由于PIC缺少寄存器而产生问题,至少有5个解决方案:1) --disable-fastmath,不使用快速数学 2) --disable-shared,不构建共享库 3) C_EXTRA_FLAGS=-DTFM_NO_ASM,关闭汇编使用 4) 使用clang,它似乎可以工作 5) 尝试使用没有PIC的选项来强制所有寄存器都开放
  • 大量新的 ./configure 开关,用于启用/禁用选项,例如
    • rsa
    • dh
    • dsa
    • md5
    • sha
    • arc4
    • null(允许NULL密码)
    • oldtls(仅使用TLS 1.2)
    • asn(不允许证书或公钥)
  • ./configure生成cyassl/options.h,允许用户在应用程序中包含此头文件,以确保应用程序和CyaSSL级别设置相同的选项。
  • autoconf不再需要serial-tests,这降低了automake版本要求至1.11,autoconf版本至2.63

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************** CyaSSL 版本 2.5.0 (02/04/2013)

版本 2.5.0 的 CyaSSL 修复了错误并增加了新功能,包括

  • 针对TLS CBC填充时间攻击的修复,由Nadhem Alfardan和Kenny Paterson发现:http://www.isg.rhul.ac.uk/tls/
  • Microchip PIC32(MIPS16,MIPS32)支持
  • 适用于PIC32以太网启动套件的Microchip MPLAB X示例项目
  • 更新了嵌入式系统使用的CTaoCrypt基准测试应用程序
  • 1024位测试证书/密钥和证书/密钥缓冲区
  • AES-CCM-8加密和密码套件
  • Camellia加密和密码套件
  • 将最小autoconf版本提高到2.65,automake版本提高到1.12
  • 添加了OCSP回调
  • 支持带硬件加密和RNG的STM32F2
  • 支持Cavium NITROX

CTaoCrypt现在支持Microchip PIC32,并已在MIPS16和MIPS32指令集模式下与Microchip PIC32 Ethernet Starter Kit、XC32编译器和MPLAB X IDE进行测试。有关更多详细信息,请参阅/mplabx目录下的README。

要添加Cavium NITROX支持,请

./configure --with-cavium=/home/user/cavium/software

指向您的授权cavium/software目录。由于Cavium不构建库,我们引入了cavium_common.o文件,这会给出libtool警告关于此的可移植性。另外,如果您使用的是github源代码树,您需要从生成的Makefile中删除-Wredundant-decls警告,因为cavium头文件不符合此警告。目前,CyaSSL在加密层直接支持Cavium RNG、AES、3DES、RC4、HMAC和RSA。在SSL级别上的支持是部分的,目前只是AES、3DES和RC4。RSA和HMAC在非阻塞模式下使用Cavium调用之前速度较慢。示例客户端打开cavium支持,同样还有加密测试和基准测试。请参阅HAVE_CAVIUM定义。

CyaSSL能够通过STM32F2标准外设库使用基于STM32F2的硬件加密和随机数生成器。有关必要定义,请参阅settings.h中的CYASSL_STM32F2定义。有关STM32F2标准外设库的文档,可在以下文档中找到:http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00023896.pdf

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

*************** CyaSSL 版本 2.4.6 (12/20/2012)

版本 2.4.6 的 CyaSSL 修复了错误并增加了一些新功能,包括

  • 将ECC纳入主版本
  • 轻量级PSK构建(减少代码大小、RAM使用量和堆栈使用量)
  • FreeBSD CRL监控支持
  • CyaSSL_peek()
  • CyaSSL_send()和CyaSSL_recv()用于I/O标志设置
  • 支持CodeWarrior
  • 支持MQX
  • 支持Freescale Kinetis,包括硬件RNG
  • autoconf构建使用jobserver
  • cyassl-config
  • Sniffer内存减少

感谢Brian Aker为改进autoconf系统、make rpm、cyassl-config、警告系统和CyaSSL的一般整改意见!

Freescale Kinetis K70 RNGA文档可在K70子系列参考手册的第37章中找到:http://cache.freescale.com/files/microcontrollers/doc/ref_manual/K70P256M150SF3RM.pdf

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

*************** CyaSSL 版本 2.4.0 (10/10/2012)

版本 2.4.0 的 CyaSSL 修复了错误并增加了一些新功能,包括

  • DTLS可靠性
  • 握手后内存使用量减少
  • 更新了构建过程

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

*************** CyaSSL 版本 2.3.0 (8/10/2012)

版本 2.3.0 的 CyaSSL 修复了错误并增加了一些新功能,包括

  • AES-GCM 加密方式和密码套件
  • 测试密码套件检查
  • 主题交替名称处理
  • 客户端/服务器示例的命令行支持
  • 嗅探器支持会话票据
  • SHA-384 密码套件
  • 当用户覆盖时验证密码套件的有效性
  • CRL 目录监控
  • DTLS Cookie 支持,可靠性即将推出

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************** CyaSSL 版本 2.2.0 (2012年5月18日)

CyaSSL 版本 2.2.0 更新修复了错误并添加了一些新功能,包括

  • 初始 CRL 支持 (--enable-crl)
  • 初始 OCSP 支持 (--enable-ocsp)
  • 添加静态 ECDH 套件
  • SHA-384 支持
  • ECC 客户端证书支持
  • 添加普通会话缓存大小(1055 个会话)
  • 更新单元测试
  • 防止互斥量重新初始化的保护

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************** CyaSSL 版本 2.0.8 (2012年2月24日)

CyaSSL 版本 2.0.8 更新修复了错误并添加了一些新功能,包括

  • Remi Gacogne 提出的问题修复(感谢),导致空指针使用。
  • 对无重协商警报的重新协商尝试做出响应
  • 为 load_verify_locations() 添加基本路径支持
  • 添加设置临时的 EC-DHE 密钥大小
  • 在移植到 rsa 测试时进行额外的检查

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL 版本 2.0.6 (2012年1月27日)

CyaSSL 版本 2.0.6 更新修复了错误并添加了一些新功能,包括

  • CA 基础约束检查修复
  • CTX 引用计数
  • 初始单元测试添加
  • 精简且华丽的 Windows 修复
  • ECC 基准测试
  • SSMTP 构建支持
  • 可以使用 set_group_messages(ctx/ssl) 对握手消息进行分组
  • CA 缓存添加回调
  • 通用用途导出 Base64 Encode

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL 版本 2.0.2 (2011年12月5日)

CyaSSL 版本 2.0.2 更新修复了错误并添加了一些新功能,包括

  • 直接使用密码库时的 CTaoCrypt 实时库检测设置
  • 默认证书生成现在使用 SHAwRSA 并添加 SHA256wRSA 生成
  • 所有测试证书现在使用 2048 位和 SHA-1 以获得更好的现代浏览器支持
  • 直接 AES 块访问和 AES-CTR(计数器)模式
  • Microchip pic32 支持

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL 版本 2.0.0rc3 (2011年9月28日)

CyaSSL 版本 2.0.0rc3 更新修复了错误并添加了一些新功能,包括

  • 更新的 autoconf 支持
  • 更好的 make install 和 uninstall(使用系统目录)
  • make test / make 检查
  • CyaSSL 头现在在
  • CTaocrypt 头现在在
  • OpenSSL 兼容性头现在在
  • 示例和测试都从主目录运行,因此可以使用 ./certs 中的证书(见注释 1)

因此,以前使用 OpenSSL 兼容性头的应用程序现在需要包含它,不需要其他更改。

特别感谢 Brian Aker 在 autoconf、install 和头文件补丁方面的贡献。

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

************ CyaSSL 版本 2.0.0rc2 (2011年6月6日)

CyaSSL 版本 2.0.0rc2 更新修复了错误并添加了一些新功能,包括

  • 错误修复(警报,DHE 与 DTLS)
  • FreeRTOS 支持
  • lwIP 支持
  • 移除 Wshadow 警告
  • asn 公共头文件
  • CTaoCrypt 公共头文件现在都带有 ctc_ 前缀(手册仍在更新以反映此更改)
  • 等等。

这是版本 2 的第二个可能也是最后一个发布候选版本。请将任何评论或问题发送到[email protected]

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

********** CyaSSL 版本 2.0.0rc1 (2011年5月2日)

CyaSSL 版本 2.0.0rc1 添加了许多新功能,包括

  • 错误修复
  • SHA-256 密码套件
  • 根证书验证(替代需要整个证书链的情况)
  • PKCS #8 私钥加密(支持 PKCS #5 v1-v2 和 PKCS #12)
  • 检索 x509 的序列号
  • PBKDF2 和 PKCS #12 PBKDF
  • 解析 x509 的 UID
  • SHA-256 证书签名
  • 客户端和服务器可以发送链(SSL_CTX_use_certificate_chain_file)
  • 现在可以解析每个文件中的多个证书
  • 动态内存运行时挂钩
  • 运行时挂钩用于日志记录
  • 服务器端 EDH
  • 更丰富错误代码信息
  • 更丰富的日志消息
  • 版本回退能力增强(使用SSL_v23*)
  • 默认情况下,通过./configure仅共享构建
  • 现在使用编译器可见性,内部函数不会污染命名空间
  • 单份Makefile,无递归,以实现更快和更简单的构建
  • 打开所有可能的警告构建选项,警告修复
  • 等等。

由于CyaSSL允许的所有新特性以及多个操作系统、编译器和功能集的选项,可能需要一些配置修复。请将任何评论或问题发送至 [email protected]

CyaSSL 手册可在以下位置获得:http://www.wolfssl.com/documentation/CyaSSL-Manual.pdf。有关构建说明和新特性的评论,请参阅手册。

****************** CyaSSL 版本 1.9.0(2011年3月2日)

CyaSSL 1.9.0版本增加错误修复,改进的TLSv1.2通过测试和更优的散列/签名算法ID,为yaSSL嵌入式Web服务器启用--enable-webServer,不当AES密钥设置检测,用户证书验证回调改进,以及其他改进。

CyaSSL手册提供在doc/目录中。有关构建说明和新功能的评论请检查手册。

请将任何评论或问题发送至 [email protected]

****************** CyaSSL 版本 1.8.0(2010年12月23日)

CyaSSL 1.8.0版本增加错误修复,x509 v3 CA签名证书生成,C标准库抽象层,通过os_settings.h文件减少内存使用,提高了可移植性,并且在使用NTRU许可证和库时可以用NTRU密码套件。

CyaSSL初始手册提供在doc/目录中。有关构建说明和新功能的评论请检查手册。

请将任何评论或问题发送至 [email protected]

圣诞快乐。

********************* CyaSSL 版本 1.6.5(2010年9月9日)

CyaSSL 1.6.5版本增加错误修复和x509 v3自签名证书生成。

有关通用构建说明请参阅doc/Building_CyaSSL.pdf。

要启用证书生成支持,请在./configure中添加此选项:./configure --enable-certgen

示例包含在ctaocrypt/test/test.c中,有关文档在doc/CyaSSL_Extensions_Reference.pdf第11项。

********************** CyaSSL 版本 1.6.0(2010年8月27日)

CyaSSL 1.6.0版本增加错误修复,RIPEMD-160,SHA-512和RSA密钥生成。

有关通用构建说明请参阅doc/Building_CyaSSL.pdf。

要添加RIPEMD-160支持,请在./configure中添加此选项:./configure --enable-ripemd

要添加SHA-512支持,请在./configure中添加此选项:./configure --enable-sha512

要添加RSA密钥生成支持,请在./configure中添加此选项:./configure --enable-keygen

请参阅ctaocrypt/test/test.c中的示例及其用法。

对于Windows,默认启用RIPEMD-160和SHA-512,但密钥生成默认关闭。要启用密钥生成,请将定义CYASSL_KEY_GEN添加到CyaSSL。

************* CyaSSL 版本 1.5.6(2010年7月28日)

CyaSSL 1.5.6版本增加错误修复,与我们JSSE提供程序的兼容性,以及某些系统上GCC构建的修复。

有关通用构建说明请参阅doc/Building_CyaSSL.pdf。

要添加AES-NI支持,请在./configure中添加此选项:./configure --enable-aesni

您需要GCC 4.4.3或更高版本才能使用汇编。

************** CyaSSL 版本 1.5.4(2010年7月7日)

CyaSSL 1.5.4版本增加错误修复,AES-NI支持,循环展开提高SHA1速度,以及Mongoose Web服务器的支持。

有关通用构建说明请参阅doc/Building_CyaSSL.pdf。

要添加AES-NI支持,请在./configure中添加此选项:./configure --enable-aesni

您需要GCC 4.4.3或更高版本才能使用汇编。

*************** CyaSSL 版本 1.5.0(2010年5月11日)

CyaSSL 1.5.0版本增加错误修复,GoAhead Web服务器支持,嗅探器支持,以及swig接口的初始支持。

有关通用构建说明请参阅doc/Building_CyaSSL.pdf。

要添加GoAhead Web服务器的支持,要么--enable-opensslExtra,要么如果不希望使用opensslExtra的所有功能,只需定义GOAHEAD_WS。GOAHEAD_WS可以添加到./configure中,使用CFLAGS=-DGOAHEAD_WS,或者您可以自行定义。

要查看嗅探器支持,请参阅sslSniffer/sslSnifferTest中的snifferTest应用。在*nix上使用--enable-sniffer构建或在Windows上使用vcproj文件。您需要在*nix上安装pcap,在Windows上安装WinPcap。

现在,swig接口文件位于swig目录中,用于与CyaSSL一起使用Python、Java、Perl等。这是初始支持和实验性的,如有问题或建议,请发送至[email protected]

当使用CyaSSL进行负载测试,例如echoserver示例时,客户端机器可能耗尽TCP临时端口,它们会进入TIME_WAIT队列,默认情况下无法再使用。通常有两种修复方法。1)减少套接字在TIME_WAIT队列中的保留时间或2)允许TIME_WAIT队列中的项目重用。

将OS X中的TIME_WAIT长度减少到3秒(3000毫秒)

sudo sysctl -w net.inet.tcp.msl=3000

在Linux中

sudo sysctl -w net.ipv4.tcp_tw_reuse=1

允许TIME_WAIT中的套接字重用

sudo sysctl -w net.ipv4.tcp_tw_recycle=1

适用但似乎从TIME_WAIT队列中完全删除套接字?

sudo sysctl -w net.ipv4.tcp_fin_timeout=1

不控制TIME_WAIT,它控制FIN_WAIT(2),这与某些帖子相反

******************** CyaSSL 版本 1.4.0(2010年2月18日)

CyaSSL 1.3.0版本添加了错误修复、更好的通过SSLv23_server_method()实现的SSL/TLS版本支持,以及doc/目录中的改进文档。

有关一般构建说明,请参阅doc/Building_CyaSSL.pdf。

******************** CyaSSL 版本 1.3.0(2010年1月21日)

CyaSSL 1.3.0版本添加了错误修复、一个潜在的安全问题修复、更好的移植支持、移除assert()s,以及完整的THREADX移植。

有关一般构建说明,请参阅下面的rc1。

******************** CyaSSL 版本 1.2.0(2009年11月2日)

CyaSSL 1.2.0版本添加了错误修复和在首次使用读或写时进行会话协商。

有关一般构建说明,请参阅下面的rc1。

******************** CyaSSL 版本 1.1.0(2009年9月2日)

CyaSSL 1.1.0版本添加了错误修复、防止恶意会话缓存使用检查、lighttpd支持,以及TLS 1.2。

要获取TLS 1.2支持,请使用客户端和服务器函数

SSL_METHOD *TLSv1_2_server_method(void); SSL_METHOD *TLSv1_2_client_method(void);

CyaSSL已与lighttpd 1.4.23测试过。要从CyaSSL安装目录构建用于与lighttpd一起使用的CyaSSL,请使用以下命令

./configure --disable-shared --enable-opensslExtra --enable-fastmath --without-zlib

make make openssl-links

然后,要从lighttpd安装目录构建使用CyaSSL的lighttpd,请使用以下命令

./configure --with-openssl --with-openssl-includes=/include --with-openssl-libs=/lib LDFLAGS=-lm

make

在某些系统上,您可能会遇到有关MD5_Init或其他MD5调用重复符号的链接错误。这似乎是lighttpd源文件md5.c造成的,它在文件开头定义了MD5_Init(),并由liblightcomp_la-md5.o包含。当liblightcomp与SSL_LIBs链接时,链接器可能会抱怨重复符号。这可以通过编辑lighttpd源文件md5.c,并在文件开头添加以下行来修复

if 0

并将以下行添加到文件末尾

endif

然后,从lighttpd源目录执行以下操作

make clean make

如果您遇到有关未定义符号的链接错误,则很可能是链接器在找到指向CyaSSL库的CyaSSL openssl-links之前找到了真实的OpenSSL库,这导致链接器混淆。这可以通过编辑lighttpd源目录中的Makefile并更改以下行来修复

SSL_LIB = -lssl -lcrypto

更改为

SSL_LIB = -lcyassl

然后,从lighttpd源目录执行以下操作

make clean make

这应该消除链接器可能遇到的任何混淆。

如有任何疑问或关切,请联系[email protected]

有关一般构建说明,请参阅下面的rc1。

******************CyaSSL 版本 1.0.6 (2009年8月3日)

CyaSSL 版本 1.0.6 修复了一些漏洞,改进了会话缓存,并添加了巨大的代码选项来加快数学运算。

会话缓存现在默认为客户端模式,也适用于嵌入式服务器。对于每分钟新会话小于200的服务器,请定义 BIG_SESSION_CACHE。如果服务器将承受重负载,请定义 HUGE_SESSION_CACHE。

现在配置中有了 fasthugemath 选项。这通过极大地增加数学库的代码大小,实现了快速数学运算和更快的数学运算。使用基准测试实用程序来比较公钥操作。

有关一般构建说明,请参阅下面的rc1。

******************CyaSSL 版本 1.0.3 (2009年5月10日)

CyaSSL 版本 1.0.3 添加了漏洞修复,并增强了在其他应用程序构建中的 OpenSSL 兼容性支持。

1.0.3 版本包含客户端和服务器 DTLS 的初步版本。目前仅供测试目的。重传和重排序目前尚未完全实现,但将在下一个版本中实现。

有关一般构建说明,请参阅下面的rc1。

******************CyaSSL 版本 1.0.2 (2009年4月3日)

CyaSSL 版本 1.0.2 为几个 I/O 问题修复了漏洞。某些系统会在接收套接字时发送 SIGPIPE,应该通过在 setsockopt() 中关闭 SIGPIPE 或从处理程序返回来处理应用程序。

1.0.2 包含客户端和服务器 DTLS 的初步版本。目前仅供测试目的。重传和重排序目前尚未完全实现,但将在下一个版本中实现。

有关一般构建说明,请参阅下面的rc1。

*****************CyaSSL 版本候选 3 rc3-1.0.0 (2009年2月25日)

CyaSSL 1.0.0 的版本候选 3 添加了漏洞修复,并添加了一个用于 iPhone 开发与 Xcode 的项目文件。cyassl-iphone.xcodeproj 位于根目录中。此版本还包含了对支持在记录层捆绑多个消息的其他实现的支持修复,这在 cyassl I/O 重新实现时丢失了,但现在已修复。

有关一般构建说明,请参阅下面的rc1。

*****************CyaSSL 版本候选 2 rc2-1.0.0 (2009年1月21日)

CyaSSL 1.0.0 的版本候选 2 添加了漏洞修复,并添加了两种新的流密码及其相应的密码套件。CyaSSL 添加了对 HC-128 和 RABBIT 流密码的支持。新套件是

TLS_RSA_WITH_HC_128_SHA TLS_RSA_WITH_RABBIT_SHA

相应密码名称是

HC128-SHA RABBIT-SHA

CyaSSL 还添加了对使用 devkitPro for PPC 的支持,通过将库的属性更改为使用 libogc。示例尚未更改,但如果有兴趣,可以更改。以下是一个为 devkitPro 构建 CyaSSL 的 configure 示例

./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"

为了链接,你需要

LDFLAGS="-g -mrvl -mcpu=750 -meabi -mhard-float -Wl,-Map,$(notdir $@).map"

有关一般构建说明,请参阅下面的rc1。

********************CyaSSL 版本候选 1 rc1-1.0.0 (2008年12月17日)

CyaSSL 1.0.0 的版本候选 1 包含一些重大内部更改。几个区域进行了优化改进,减少了动态内存使用,并将 I/O 策略重构为允许使用不同的 I/O 处理或库。非常感谢 Thierry Fournier 提供这些想法和大部分工作。

由于这些更改,此版本只是一个候选人,因为在某些平台和某些 I/O 使用方面可能会出现一些问题。请报告任何问题,我们将尽快尝试解决它们。您可以通过[email protected][email protected]与我们联系。

通过在 ./configure 中传递 --enable-fastmath,现在使用 TomsFastMath 会在某些平台上使用汇编代码。这是新功能,因此请报告任何问题,因为还没有针对每种编译器、模式和操作系统组合进行测试。在 ia32 上,需要所有寄存器都可用,所以请确保将以下选项传递给 CFLAGS:

CFLAGS="-O3 -fomit-frame-pointer"

macOS 需要在 CFLAGS 中添加 -mdynamic-no-pic

如果您正在为 ia32 构建共享模式,则还需要为 macOS 上的 LDFLAGS 传递选项

LDFLAGS=-Wl,-read_only_relocs,warning

这将警告某些符号,但似乎可以正常工作。

-----------------------要构建在 Linux、Solaris、*BSD、Mac OS X 或 Cygwin 上

./configure
make

from the ./testsuite/ directory run ./testsuite 

使用 make debug 命令行进行调试构建

./configure --enable-debug --disable-shared
make

-----------------------要构建在 Win32 上

从项目工作空间中选择“全部重新构建”

运行测试程序

**************************CyaSSL 版本 0.9.9 (2008 年 7 月 25 日)

CyaSSL 的这个版本添加了错误修复、预共享密钥、可覆盖的内存处理以及可选的 TomsFastMath。感谢 Moisés Guimarães 对 TomsFastMath 的工作。

要使用 TomsFastMath,请将 --enable-fastmath 传递给 ./configure,或者在 CyaSSL 的 MSVC 项目中定义 USE_FAST_MATH。

在构建前后使用基准测试例程,以查看性能差异。在某些平台上,收益可能很小,但 RSA 加密似乎总是更快。在 x86-64 机器上使用 GCC 的正常数学库可能在 CFLAGS=-m64 时优于快速数学库,因为 TomsFastMath 还不能使用 -m64,因为 GCC 无法进行 128 位除法。

 **** UPDATE GCC 4.2.1 can now do 128bit division ***

详细构建说明请参阅下面的说明(0.2.0)。

****************CyaSSL 版本 0.9.8 (2008 年 5 月 7 日)

CyaSSL 的这个版本添加了错误修复、客户端 Diffie-Hellman 和改进的套接字处理。

详细构建说明请参阅下面的说明(0.2.0)。

****************CyaSSL 版本 0.9.6 (2008 年 1 月 31 日)

CyaSSL 的这个版本添加了错误修复、增强会话管理和修复 gnutls 的问题。

详细构建说明请参阅下面的说明(0.2.0)。

****************CyaSSL 版本 0.9.0 (2007 年 10 月 15 日)

CyaSSL 的这个版本添加了错误修复、MSVC 2005 支持、GCC 4.2 支持、IPV6 支持和测试以及新的测试证书。

详细构建说明请参阅下面的说明(0.2.0)。

****************CyaSSL 版本 0.8.0 (2007 年 1 月 10 日)

CyaSSL 的这个版本添加了对非阻塞写入、连接和系统调用的断电支持。

详细构建说明请参阅下面的说明(0.2.0)。

****************CyaSSL 版本 0.6.3 (2006 年 10 月 30 日)

CyaSSL 的这个版本添加了 stderr 的调试日志,以帮助在可能不支持最佳方案的系统上调试 CyaSSL。

如果为 CyaSSL 重新构建了调试支持,则调用 CyaSSL_Debugging_ON() 以启用日志记录。

在 Unix 上使用 ./configure --enable-debug

在 Windows 上,构建 CyaSSL 时定义 DEBUG_CYASSL

要关闭日志记录,请调用 CyaSSL_Debugging_OFF()

详细构建说明请参阅下面的说明(0.2.0)。

*****************CyaSSL 版本 0.6.2 (2006 年 10 月 29 日)

CyaSSL 的这个版本添加了 TLS 1.1。

请注意,与 OpenSSL 不同,CyaSSL 默认启用证书验证。要模拟 OpenSSL 的行为,必须使用 SSL_VERIFY_NONE 调用 SSL_CTX_set_verify()。为了获得完整的安全性,您永远不应该这样做,应向 CyaSSL 提供适当的证书,以消除冒名顶替者,并调用 CyaSSL_check_domain_name() 以防止中间人攻击。

有关构建说明,请参阅下面的说明(0.2.0)。

*****************CyaSSL 版本 0.6.0 (2006 年 10 月 25 日)

CyaSSL 的这个版本添加了更多的 SSL 功能、更好的自动配置、accept、connect 和 read 的非阻塞 I/O。现在有一个 --enable-small 配置选项,可以关闭 TLS、AES、DES3、HMAC 和 ERROR_STRINGS,有关定义,请参阅 configure.in。请注意,TLS 需要 HMAC,而 AES 需要 TLS。

有关构建说明,请参阅下面的说明(0.2.0)。

*****************CyaSSL 版本 0.5.5 (2006 年 9 月 27 日)

CyaSSL 的这个微型版本添加了通过缓冲输入和大数据支持改进的输入处理。添加了 SSL_pending() 和一些用户设置的合理性检查。

有关构建说明,请参阅下面的说明(0.2.0)。

*****************CyaSSL 版本 0.5.0 (2006 年 3 月 27 日)

CyaSSL 的这个版本添加了 AES 支持和少量错误修复。

有关构建说明,请参阅下面的说明(0.2.0)。

*****************CyaSSL 版本 0.4.0 (2006 年 3 月 15 日)

本次CyaSSL发布添加了TLSv1客户端/服务器支持和libtool库。

以下注解中提供了构建说明。

*****************CyaSSL版本0.3.0 (2006年2月26日)

本次CyaSSL发布添加了SSLv3服务器支持和会话恢复功能。

以下注解中提供了构建说明。

*****************CyaSSL版本0.2.0 (2006年2月19日)

这是CyaSSL及其加密兄弟程序CTaoCrypt的第一个版本。CyaSSL用ANSI C编写,考虑到代码大小、占用空间和内存使用。CTaoCrypt可以小至32K,当前CyaSSL客户端版本可以小至12K。

CTaoCrypt的第一个版本支持MD5、SHA-1、3DES、ARC4、大数支持、RSA、ASN解析和基本的X509编码/解码。

CyaSSL的第一个版本支持带有SHA-1和MD5摘要支持的普通客户端RSA模式SSLv3连接。加密包括3DES和RC4。

-----------------------要构建在 Linux、Solaris、*BSD、Mac OS X 或 Cygwin 上

./configure
make

from the ./testsuite/ directory run ./testsuite 

使用 make debug 命令行进行调试构建

./configure --enable-debug --disable-shared
make

-----------------------要构建在 Win32 上

从项目工作空间中选择“全部重新构建”

运行测试程序

*** CyaSSL的下一次发布将支持服务器和更多OpenSSL兼容功能。

请将问题或评论发送至 [email protected]