
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson 無断転載を禁じます。
The OpenSSL Project は、堅牢で商用グレード、フル機能を備えたオープンソースツールキットの開発を目的とした共同プロジェクトです。 このツールキットは、Secure Sockets Layer(SSL v2/v3)および Transport Layer Security(TLS v1)プロトコルと、 強力な汎用暗号ライブラリを実装しています。 プロジェクトは、世界中のボランティアコミュニティによって管理されており、 彼らはインターネットを利用して、OpenSSL ツールキットとその関連ドキュメントの コミュニケーション、計画、開発を 行っています。
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 の一部として再ライセンスされました。15 の「モード/バリエーション」の
DES(ecb、cbc、cfb、ofb の 1、2、3 鍵バージョン、pcbc とより一般的な形式の cfb および ofb)と、
cbc モードの desx、高速な crypt(3)、キーボードからパスワードを読み取るルーチンが
含まれています。
RC4 暗号化、
RC2 暗号化 - ecb、cbc、cfb、ofb の 4 つの異なるモード。
Blowfish 暗号化 - ecb、cbc、cfb、ofb の 4 つの異なるモード。
IDEA 暗号化 - ecb、cbc、cfb、ofb の 4 つの異なるモード。
ダイジェスト
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 によって特許を取得されています。 このアルゴリズムを使用する場合は同社に連絡する必要があります。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 Web サイト www.openssl.org を参照してください。
OpenSSL に問題がある場合は、まず以下の手順を 実行してください:
- 問題がすでに対処されているかどうかを確認するために、ftp://ftp.openssl.org/snapshot/ から
現在のスナップショットをダウンロードする
- ライブラリの ASM 版を削除する
- コンパイラの最適化フラグを削除する
バグを報告する場合は、バグレポートに以下の情報を 含めてください:
- Unix システムの場合:
'make report' によって生成されたセルフテストレポート
- その他のシステムの場合:
OpenSSL バージョン: 'openssl version -a' の出力
OS 名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細(名前、バージョン)
- アプリケーションの詳細(名前、バージョン)
- 問題の説明(既知の場合は、問題を再現する手順)
- スタックトレースバック(アプリケーションがコアダンプした場合)
Request Tracker(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 Encryption Request Coordinator にもコピーが送信された場合にのみ受け付けられます。 詳細については、以下を確認してください。 http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf(EAR セクション 740.13(e)) 「暗号化ソースコードが電子メールの添付ファイルとして送信するには大きすぎる」場合は、 代わりにファックスで受け付けてもらえます。 格安の長距離電話プランを利用できることを願っています。
変更の推奨形式は "diff -u" 出力です。 次のように生成できます: