Bouncy Castle Crypto package

Bouncy Castle Crypto包是一个Java/C#实现的加密算法和协议包。(The Bouncy Castle Crypto package is a Java/C# implementation of cryptographic algorithms and protocols)

  • 所有者: bcgit/bc-java
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    4
      比較:

Github星跟蹤圖

"在Bouncy Castle,我们信仰加密,这是我们心中最亲近的东西。我们如此强烈地相信加密,我们已经努力为大家提供一些,我们已经做了超过15年!"

Bouncy Castle Crypto包是一个Java/C#实现的加密算法和协议包,它是由 the Legion of the Bouncy Castle 开发的。该软件包被组织为:包含一个适用于任何环境的API(包括新发布的轻量级的J2ME),以及附加的基础结构以使算法符合JCE框架。除了提供基本的加密算法,该包还提供对CMS TSP、X.509证书生成和各种其他标准(如OpenPGP)的支持。

除非另有说明,本软件根据MIT X Consortium许可证的许可证分发。OpenPGP库还包括根据Apache软件许可证1.1版授权的修改的BZIP2库。

最初,在20世纪90年代后期,Bouncy Castle 只是一些对于密码学和开源感兴趣的个人联合。Bouncy Castle API的第一次正式发布于2000年5月,约27,000行长。该项目稳步增长,2006年增加了一个C#版本的Java API。到2012年,Java代码库已经超过300,000行,C#超过140,000行。

Bouncy Castle API目前包括以下内容:

  • 用于Java和C#的轻量级密码API。
  • 一个java加密扩展和java加密体系提供程序。
  • JCE 1.2.1的一个洁净室(clean-room)实现。
  • 一个库用于读取和写入编码的 ASN.1 对象。
  • TLS的轻量级API(RFC 2246,RFC 4346)和DTLS(RFC 4347)。
  • 版本1和版本3的生成器X.509证书,版本2 CRL和PKCS12文件。
  • 版本2 X.509属性证书的生成器。
  • S /MIME和CMS的生成器/处理器(PKCS7 /RFC 3852)。
  • OCSP的发生器/处理器(RFC 2560)。
  • 用于TSP的发生器/处理器(RFC 3161和RFC 5544)。
  • CMP和CRMF的生成器/处理器(RFC 4210和RFC 4211)。
  • OpenPGP的发生器/处理器(RFC 4880)。
  • 扩展访问控制(EAC)的生成器/处理器。
  • 用于数据验证和认证服务器(DVCS)的生成器/处理器 - RFC 3029。
  • 一个签名的jar版本适合JDK 1.4-1.7和Sun JCE。
  • 轻量级API适用于从J2ME到JDK 1.7的所有内容,还有一个C#中的API为上述大多数提供了等效的功能。
  • 更多详细信息,请访问官方网站。

概覽

名稱與所有者bcgit/bc-java
主編程語言Java
編程語言HTML (語言數: 4)
平台
許可證MIT License
發布數33
最新版本名稱r1rv78v1 (發布於 )
第一版名稱r1rv49 (發布於 2013-06-01 12:33:07)
創建於2013-06-01 02:38:42
推送於2024-04-20 12:17:35
最后一次提交
星數2.2k
關注者數135
派生數1.1k
提交數15.5k
已啟用問題?
問題數1198
打開的問題數236
拉請求數12
打開的拉請求數29
關閉的拉請求數360
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

The Bouncy Castle Crypto Package For Java

The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was developed by the Legion of the Bouncy Castle, a registered Australian Charity, with a little help! The Legion, and the latest goings on with this package, can be found at https://www.bouncycastle.org.

The Legion also gratefully acknowledges the contributions made to this package by others (see here for the current list). If you would like to contribute to our efforts please feel free to get in touch with us or visit our donations page, sponsor some specific work, or purchase a support contract through Crypto Workshop.

The package is organised so that it contains a light-weight API suitable for use in any environment (including the newly released J2ME) with the additional infrastructure to conform the algorithms to the JCE framework.

Except where otherwise stated, this software is distributed under a license based on the MIT X Consortium license. To view the license, see here. The OpenPGP library also includes a modified BZIP2 library which is licensed under the Apache Software License, Version 2.0.

Note: this source tree is not the FIPS version of the APIs - if you are interested in our FIPS version please contact us directly at office@bouncycastle.org.

Code Organisation

The clean room JCE, for use with JDK 1.1 to JDK 1.3 is in the jce/src/main/java directory. From JDK 1.4 and later the JCE ships with the JVM, the source for later JDKs follows the progress that was made in the later versions of the JCE. If you are using a later version of the JDK which comes with a JCE install please do not include the jce directory as a source file as it will clash with the JCE API installed with your JDK.

The core module provides all the functionality in the ligthweight APIs.

The prov module provides all the JCA/JCE provider functionality.

The pkix module is the home for code for X.509 certificate generation and the APIs for standards that rely on ASN.1 such
as CMS, TSP, PKCS#12, OCSP, CRMF, and CMP.

The mail module provides an S/MIME API built on top of CMS.

The pg module is the home for code used to support OpenPGP.

The tls module is the home for code used to a general TLS API and JSSE Provider.

The build scripts that come with the full distribution allow creation of the different releases by using the different source trees while excluding classes that are not appropriate and copying in the required compatibility classes from the directories containing compatibility classes appropriate for the distribution.

If you want to try create a build for yourself, using your own environment, the best way to do it is to start with the build for the distribution you are interested in, make sure that builds, and then modify your build scripts to do the required exclusions and file copies for your setup, otherwise you are likely to get class not found exceptions. The final caveat to this is that as the j2me distribution includes some compatibility classes starting in the java package, you need to use an obfuscator to change the package names before attempting to import a midlet using the BC API.

Examples and Tests

To view some examples, look at the test programs in the packages:

  • org.bouncycastle.crypto.test

  • org.bouncycastle.jce.provider.test

  • org.bouncycastle.cms.test

  • org.bouncycastle.mail.smime.test

  • org.bouncycastle.openpgp.test

  • org.bouncycastle.tsp.test

There are also some specific example programs for dealing with SMIME and OpenPGP. They can be found in:

  • org.bouncycastle.mail.smime.examples

  • org.bouncycastle.openpgp.examples

Mailing Lists

For those who are interested, there are 2 mailing lists for participation in this project. To subscribe use the links below and include the word subscribe in the message body. (To unsubscribe, replace subscribe with unsubscribe in the message body)

NOTE: You need to be subscribed to send mail to the above mailing list.

Feedback and Contributions

If you want to provide feedback directly to the members of The Legion then please use feedback-crypto@bouncycastle.org, if you want to help this project survive please consider donating.

For bug reporting/requests you can report issues here on github, or via feedback-crypto if required. We will accept pull requests based on this repository as well, but only on the basis that any code included may be distributed under the Bouncy Castle License.

Finally

Enjoy!

去到頂部