
SSL/TLSプロトコルを実装したオープンソースツールキットであり、暗号化、復号化、証明書管理、ハッシュ関数を備えた本格的な暗号ライブラリです。
OpenSSL 1.0.1g 2014年4月7日
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
OpenSSL Project は、堅牢で商業グレード、完全な機能を備えた オープンソースツールキットを開発するための共同作業です。 このツールキットは、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 関連のものですが、 論理的にはそれに属しません。以下を含むルーチンを提供します。
暗号
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。
ダイジェスト
MD5 および MD2 メッセージダイジェストアルゴリズム、高速実装、
SHA (SHA-0) および SHA-1 メッセージダイジェストアルゴリズム、
MDC2 メッセージダイジェスト。スマートカードで人気のある DES ベースのハッシュ。
公開鍵
RSA 暗号化/復号化/生成。
ビット数に制限はありません。
DSA 暗号化/復号化/生成。
ビット数に制限はありません。
Diffie-Hellman 鍵交換/鍵生成。
ビット数に制限はありません。
X.509v3 証明書
X509 のバイナリ ASN1 および PEM ベースの ASCII-バイナリ
エンコーディングへの/からのエンコード/デコード。秘密鍵による
暗号化をサポートします。RSA および DSA 証明書要求を生成し、
RSA および DSA 証明書を生成するプログラム。
システム
通常のデジタルエンベロープルーチンと base64 エンコーディング。
名前による暗号とダイジェストへの高レベルアクセス。新しい暗号は
実行時にロードできます。BIO IO システムは、シンプルな非ブロッキング
IO 抽象化です。現在サポートされているメソッドは、ファイル記述子、
ソケット、ソケット accept、ソケット connect、メモリバッファ、
バッファリング、SSL クライアント/サーバー、ファイルポインタ、
暗号化、ダイジェスト、非ブロッキングテスト、および null です。
データ構造
動的に成長するハッシュシステム
シンプルなスタック。
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 系でこのパッケージをインストールするには、INSTALL ファイルを読んでください。 Win32 プラットフォームの場合は INSTALL.W32 ファイルを、OpenVMS システムの場合は INSTALL.VMS を読んでください。
doc/ ディレクトリのドキュメントを読んでください。かなり粗いですが、 関数がリストされています。おそらく、それらの使い方を理解するには コードを見る必要があるでしょう。サンプルプログラムを見てください。
一部のプラットフォームでは、ユーザーやアプリケーション作成者に影響を与える 可能性のある既知の問題があります。それらを doc/PROBLEMS にまとめ、 OpenSSL の将来における解決策についての現在の考えを記載しています。
商用テクニカルサポートの入手方法の詳細については、OpenSSL ウェブサイト www.openssl.org を参照してください。
OpenSSL に問題がある場合は、次の手順を まず実行してください:
- 現在のスナップショットを ftp://ftp.openssl.org/snapshot/ から
ダウンロードして、問題がすでに対処されているか確認する
- ASM バージョンのライブラリを削除する
- コンパイラの最適化フラグを削除する
バグを報告する場合は、バグレポートに次の情報を含めて ください:
- Unix システムの場合:
'make report' によって生成されたセルフテストレポート
- その他のシステムの場合:
OpenSSL バージョン: 'openssl version -a' の出力
OS 名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細 (名前、バージョン)
- アプリケーションの詳細 (名前、バージョン)
- 問題の説明 (問題を再現する手順。既知の場合)
- スタックトレースバック (アプリケーションがコアダンプする場合)
Request Tracker を介して OpenSSL プロジェクトにバグを報告してください (http://www.openssl.org/support/rt.html) 以下のメールアドレスへ:
リクエストトラッカーは一般的な支援やサポートの問い合わせには使用しないで ください。何かが期待どおりに動作しないからといって、それが必ずしも 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 Encryption Request Coordinator にも コピーが送信された場合にのみ受け付けられます。詳細を確認するには、 http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) を参照してください。「暗号化ソースコードが電子メールの添付ファイルとして 送信するには大きすぎる」場合は、代わりにファックスで受け取っても問題ありません。 安い長距離電話プランをお持ちであることを願います。
変更の推奨形式は "diff -u" 出力です。 次のように生成できます: