
フル機能のオープンソースツールキットで、SSL/TLSプロトコルを実装し、暗号、ダイジェスト、公開鍵アルゴリズム、X.509証明書管理をサポートする汎用暗号ライブラリを提供します。
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
OpenSSLプロジェクトは、Secure Sockets Layer(SSL v2/v3)およびTransport Layer Security(TLS v1)プロトコルを実装した、堅牢で商用グレード、フル機能のオープンソースツールキットと、本格的な汎用暗号ライブラリを開発するための共同作業です。このプロジェクトは、インターネットを利用してコミュニケーション、計画、開発を行う世界中のボランティアコミュニティによって管理されています。
OpenSSLは、Eric A. YoungとTim J. Hudsonが開発した優れたSSLeayライブラリに基づいています。OpenSSLツールキットはデュアルライセンス(OpenSSLライセンスとSSLeayライセンス)のもとで提供されており、基本的には両方のライセンス条件を満たす限り、商用・非商用を問わず自由に入手して使用することができます。
OpenSSLツールキットには以下が含まれます:
libssl.a: SSLv2、SSLv3、TLSv1の実装、および同一のサーバーとクライアントでSSLv2、SSLv3、TLSv1の両方をサポートするために必要なコード。
libcrypto.a: SSL/TLSで必要だが論理的にはその一部ではない、一般的な暗号化およびX.509 v1/v3関連の機能。以下のルーチンを含みます:
暗号(Ciphers)
libdes - EAYのlibdes DES暗号化パッケージ。数年にわたってネット上で広まり、その後SSLeayの一部として再ライセンスされました。DESの15の「モード/バリエーション」(ecb、cbc、cfb、ofbの1、2、3キーバージョン;pcbcおよびcfb、ofbのより一般的な形式)を含み、cbcモードのdesx、高速なcrypt(3)、キーボードからのパスワード読み取りルーチンも含まれます。
RC4暗号化、
RC2暗号化 - 4つの異なるモード:ecb、cbc、cfb、ofb。
Blowfish暗号化 - 4つの異なるモード:ecb、cbc、cfb、ofb。
IDEA暗号化 - 4つの異なるモード:ecb、cbc、cfb、ofb。
ダイジェスト(Digests)
MD5およびMD2メッセージダイジェストアルゴリズム、高速実装、
SHA(SHA-0)およびSHA-1メッセージダイジェストアルゴリズム、
MDC2メッセージダイジェスト。スマートカードで普及しているDESベースのハッシュ。
公開鍵(Public Key)
RSA暗号化/復号/生成。
ビット数に制限はありません。
DSA暗号化/復号/生成。
ビット数に制限はありません。
Diffie-Hellman鍵交換/鍵生成。
ビット数に制限はありません。
X.509v3証明書
X509エンコード/デコード(バイナリASN1との間)、および秘密鍵による暗号化をサポートするPEMベースのASCIIバイナリエンコード。RSAおよびDSA証明書要求を生成し、RSAおよびDSA証明書を生成するプログラム。
システム(Systems)
標準的なデジタルエンベロープルーチンとbase64エンコード。名前による暗号とダイジェストへの高レベルアクセス。実行時に新しい暗号をロード可能。BIO入出力システム(シンプルなノンブロッキングIO抽象化)。現在サポートされているメソッド:ファイルディスクリプタ、ソケット、ソケット受け入れ、ソケット接続、メモリバッファ、バッファリング、SSLクライアント/サーバー、ファイルポインタ、暗号化、ダイジェスト、ノンブロッキングテスト、null。
データ構造(Data structures)
動的に拡張するハッシュシステム
シンプルなスタック
MS .iniファイルに似た形式を使用する設定ローダー
openssl: 以下の用途に使用できるコマンドラインツール: RSA、DH、DSA鍵パラメータの生成 X.509証明書、CSR、CRLの生成 メッセージダイジェストの計算 暗号による暗号化と復号 SSL/TLSクライアントおよびサーバーのテスト S/MIME署名または暗号化メールの処理
世界中のさまざまな企業が、さまざまな地域でさまざまなアルゴリズムに関する特許を保有しています。_あなた_は、使用するアルゴリズムが自国で特許に抵触していないか確認し、合法的に使用する責任があります。このファイルには、既知または噂されている特許の一部が含まれています。これは完全なリストではありません。
RSA Security社は、RC5アルゴリズムに関するソフトウェア特許を保有しています。この暗号を使用する場合は、ライセンス条件についてRSA Security社に連絡する必要があります。Webサイトは http://www.rsasecurity.com/ です。
RC4はRSA Security社の商標です。そのため、このラベルはRSA Security社の許可を得てのみ使用すべきです。
IDEAアルゴリズムは、オーストリア、フランス、ドイツ、イタリア、日本、オランダ、スペイン、スウェーデン、スイス、英国、米国においてAscom社が特許を保有しています。このアルゴリズムを使用する場合は、Ascom社に連絡する必要があります。Webサイトは http://www.ascom.ch/ です。
NTTおよび三菱は、Camelliaアルゴリズムに関する特許および出願中の特許を保有していますが、明示的なライセンス契約なしで無料で使用することを許可しています:http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Unix系OSでこのパッケージをインストールするには、INSTALLファイルをお読みください。Win32プラットフォームの場合は、INSTALL.W32ファイルをお読みください。OpenVMSシステムの場合は、INSTALL.VMSをお読みください。
doc/ディレクトリにあるドキュメントをお読みください。非常に大まかなものですが、関数の一覧が記載されています。使用方法を理解するには、コードを参照する必要があるでしょう。サンプルプログラムをご覧ください。
一部のプラットフォームでは、ユーザーやアプリケーション作成者に影響を与える可能性のある既知の問題があります。それらはdoc/PROBLEMSにまとめてあり、今後のOpenSSLでどのように解決すべきかについての現在の見解も記載されています。
商用テクニカルサポートを受ける方法の詳細については、OpenSSL Webサイト www.openssl.org を参照してください。
OpenSSLに関して問題が発生した場合は、まず以下の手順を実行してください:
- ftp://ftp.openssl.org/snapshot/ から最新のスナップショットをダウンロードし、問題が既に解決されていないか確認する
- ASM版のライブラリを削除する
- コンパイラの最適化フラグを削除する
バグを報告する場合は、バグレポートに以下の情報を含めてください:
- Unix系システムの場合:
'make report' で生成される自己テストレポート
- その他のシステムの場合:
OpenSSLのバージョン:'openssl version -a' の出力
OS名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細(名前、バージョン)
- アプリケーションの詳細(名前、バージョン)
- 問題の説明(既知の場合は、問題を再現する手順)
- スタックトレースバック(アプリケーションがコアダンプする場合)
バグは、リクエストトラッカー (http://www.openssl.org/support/rt.html) を介してOpenSSLプロジェクトにメールで報告してください:
リクエストトラッカーは一般的な支援やサポートの問い合わせに使用すべきではないことに注意してください。期待通りに動作しないからといって、必ずしもOpenSSLのバグであるとは限りません。
[email protected] へのメールは一般公開されたリクエストトラッカーデータベースに記録され、公開メーリングリストに転送されることに注意してください。機密メールは [email protected] に送信してください(PGPキーはキーサーバーから入手可能)。
開発は openssl-dev メーリングリストで調整されています(購読に関する情報は http://www.openssl.org を参照)。パッチを提出する場合は、件名に "[PATCH]" を含めて [email protected] に送信してください。パッチの内容をテキストで説明することを忘れないでください。
ある機能がOpenSSLコミュニティ全体にとって有用かどうか不明な場合は、まず openssl-dev メーリングリストで議論してください。既に誰かが同じ作業を行っているか、その機能が実装されていない理由があるかもしれません。
パッチは可能な限り最新のものにし、できれば現在のGitまたは最新のスナップショットを基準にしてください。OpenSSLのコーディングスタイルに従い、警告なしでコンパイルできる必要があります。コアチームの開発者ターゲットの一部はテスト目的で使用できます(debug-steve64、debug-geoffなど)。OpenSSLは多くの異なるプラットフォームでコンパイルされます。移植性のある機能のみを使用するように注意してください。
注:法的な理由から、米国からの貢献は、TSU通知とパッチのコピーを [email protected](旧BXA)に送り、ENC暗号化リクエストコーディネーターにCCすることが求められる場合にのみ受け付けられます。詳細については、以下を参照してください: http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EARセクション740.13(e)) 「暗号化ソースコードが大きすぎて電子メールの添付ファイルとして送信できない」場合は、FAXで受け付けてもらえます。長距離通話が安価なプランを利用していることを願います。
変更の推奨形式は "diff -u" の出力です。以下のように生成できます: