botan, C++11的加密和 TLS

 

  • 源代码名称:botan
  • 源代码网址:http://www.github.com/randombit/botan
  • botan源代码文档
  • botan源代码下载
  • Git URL:

    复制代码

    git://www.github.com/randombit/botan.git
  • Git Clone代码到本地:

    复制代码

    git clone http://www.github.com/randombit/botan
  • Subversion代码到本地:

    复制代码

    $ svn co --depth empty http://www.github.com/randombit/botan
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

Botan: C++11的加密和 TLS

Botan ( 日本牡丹) 是用C++11编写的加密库,并在许可简化的BSD 许可证下发布。

botan goal提供实现一系列实用系统( 如 tls/dtls,PKIX证书处理,PKCS#11和TPM硬件支持,密码哈希和post密码方案)的工具,成为新 C++ 代码的最佳选择。 除了 C++,botan还有专门设计的C89 API,它可以很容易地从其他语言调用。 使用ctypes调用 C89 API的python 绑定包括。

查找下面的完整功能列表。

开发是在 GitHub上协调的,并且欢迎提供。

如果你需要帮助,请在GitHub上打开一个问题,或者给botan开发邮件列表

新版发布在 botan公告邮件列表中宣布。

如果你认为你在Botan中找到了一个安全 Bug,请通过电子邮件发送 jack@randombit.net 联系 Jack。 可以在发行版 distribution https://keybase.io/jacklloyd 插件和某些 public PGP密钥服务器中找到带有指纹 4E60 C73551AF2188DF0A5A6278E9804357123B60的public 密钥。

对于构建库的所有细节,请阅读用户手册,但基本上:

复制代码

$./configure.py --help
$./configure.py [probably some options]
$ make
$./botan-test
# lots of output...
Tests all ok
$./botan
# shows available commands
$ make install

Botan还可以构建为单个文件合并,以便容易包含到外部构建系统中,见手册。

68747470733a2f2f7472617669732d63692e6f72672f72616e646f6d6269742f626f74616e2e7376673f6272616e63683d6d6173746572uploading.4e448015.gif转存失败重新上传取消Travis CI status68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f6e39663934646c6a6430336a326c63652f6272616e63682f6d61737465723f7376673d74727565uploading.4e448015.gif转存失败重新上传取消AppVeyor CI status68747470733a2f2f626f74616e2d63692e6b756c6c6f2e6e65742f6261646765uploading.4e448015.gif转存失败重新上传取消Kullo CI status68747470733a2f2f636f6465636f762e696f2f6769746875622f72616e646f6d6269742f626f74616e2f636f7665726167652e7376673f6272616e63683d6d6173746572uploading.4e448015.gif转存失败重新上传取消Code coverage report68747470733a2f2f7363616e2e636f7665726974792e636f6d2f70726f6a656374732f3632342f62616467652e737667uploading.4e448015.gif转存失败重新上传取消Coverity results68747470733a2f2f736f6e6172717562652e636f6d2f6170692f6261646765732f676174653f6b65793d626f74616euploading.4e448015.gif转存失败重新上传取消Sonarqube analysis68747470733a2f2f626573747072616374696365732e636f7265696e6672617374727563747572652e6f72672f70726f6a656374732f3533312f6261646765uploading.4e448015.gif转存失败重新上传取消CII Best Practices statement

下载下载

请参阅发行说明安全咨询。

所有版本均使用 PGP密钥签名:

复制代码

pub 2048R/EFBADFBC 2004-10-30
 Key fingerprint = 621D AF64 11E1 851C 4CF9 A2E1 6211 EBF1 EFBA DFBC
uid Botan Distribution Key

一些发行版,例如for和Debian包含了Botan的包。 然而,这些通常是过时的;建议使用最新的源版本。

电流稳定释放

版本 2需要一个C++11编译器;GCC 4.8和更高版本,Clang 3.5和更高版本,以及 MSVC 2015.

最新的2.x 版本是年on发布的版

老的稳定版本

1.10分支是用C++98编写的库的最后一个版本,仍然是最常用的打包版本。 它不再受支持,除了关键安全更新( 所有支持均以 2018 -1 -1结束) 之外,开发者不再推荐使用它。

最新版本的版本是年2017-10-02发布的

Find

传输层安全性协议

  • TLS v1.0,v1.1和 v1.2. 不再支持中断的SSLv3协议。
  • DTLS v1.0和v1.2是对数据报操作的修改。
  • 扩展包括会话票证。SNI。ALPN。OCSP staple请求( 客户端目前仅有)。encrypt-then-mac CBC和扩展主密钥。
  • 支持使用预先共享密钥( PSK ) 或者密码进行身份验证( SRP )
  • 使用 ChaCha20Poly1305,AES/OCB,AES/gcm,AES/ccm,3/gcm,/gcm和传统 CBC cipherSuites,/SEED,/。
  • 使用 diffie hellman,ECDH,RSA或者CECPQ1进行密钥交换

public-密钥基础结构

  • X.509v3 证书和CRL创建和处理
  • PKIX证书路径验证,包括 NAME 约束。
  • OCSP请求创建和响应处理
  • PKCS #10 证书申请生成和处理
  • SQL数据库备份的证书存储库

public-密钥加密

  • RSA签名和加密
  • DH和ECDH密钥协议
  • 签名方案 ECDSA,DSA,Ed25519,ECGDSA,ECKCDSA,SM2和 GOST 34.10 -2001
  • post量子签名方案 XMSS
  • post量子密钥协议McEliece和 NewHope
  • ElGamal加密
  • 填充方案 OAEP,PSS,PKCS #1 v1.5,X9.31

密码,哈希,mac和校验和

  • 认证密码模式 EAX。OCB。GCM。SIV。CCM和 ChaCha20Poly1305
  • 密码模式 CTR。CBC。dmoz。CFB和 OFB
  • 方块式密码,ARIA,Blowfish,Camellia,CAST-128,CAST-256,des,IDEA,IDEA,IDEA,IDEA,XTEA,SM4,Threefish-512,,,
  • 流密码 ChaCha20,salsa20/xsalsa20,SHAKE-128和 RC4
  • 哈希函数 SHA-1,SHA-2,SHA-3,RIPEMD-160,Skein-512,BLAKE2b,Tiger,漩涡,GOST 34.11,MD5,MD4
  • Hash函数组合并行和 Comb4P
  • 认证码 HMAC,CMAC,Poly1305,SipHash,cbc mac,X9.19 des mac
  • 非加密校验和 Adler32,CRC24和 CRC32

其他有用的东西

  • 完整 C++ PKCS #11 API包装器
  • TPM v1.2设备访问接口
  • 简单压缩API包装 zlib。bzip2和lzma库
  • RNG封装系统RNG和硬件 RNGs
  • 面向用户空间RNGs的HMAC_DRBG和熵
  • 基于PBKDF2密码的密钥派生
  • 密码哈希函数bcrypt和 passhash9 ( 自定义PBKDF方案)
  • SRP-6a密码认证密钥交换
  • 关键推导函数包括 HKDF,KDF2,SP 800 -108,SP 800 -56A,SP 800 -56C
  • HOTP和TOTP算法
  • 保留加密方案FE1格式
  • 门限秘密共享
  • RFC 3394 AES密钥包

推荐算法

  • 用于网络通信的加密使用 TLS v1.2
  • 数据包加密:aes-256/gcm,aes-256/OCB,snake/反间谍组织或者 ChaCha20Poly1305
  • 常规哈希函数:BLAKE2b,SHA-2,SHA-3或者 Skein-512
  • 消息身份验证或者 PRF: 带有SHA-256的HMAC
  • 密钥派生函数:KDF2或者 HKDF
  • public 密钥加密:RSA,2048 + 位密钥,带有 oaep/sha-256
  • public 密钥签名:RSA,2048 + 位密钥,具有 GPFS/sha-512,或者使用 p-256/sha-256或者 p-521/sha-512
  • 密钥协议:使用 P-256 或者X25519的ECDH。 如果你关心量子计算机,请将ECC与NewHope结合起来

https://www.kutu66.com//GitHub/article_97999

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值