
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 ツールキットとその関連文書の開発を行う、 世界中のボランティアコミュニティによって管理されています。
OpenSSL は、Eric A. Young と Tim J. Hudson によって開発された優れた SSLeay ライブラリに基づいています。 OpenSSL ツールキットは、デュアルライセンス(OpenSSL ライセンスと SSLeay ライセンス)の状況でライセンスされており、これは基本的に、 両方のライセンスの条件を満たす限り、商用および非商用の目的で 自由に入手して使用できることを意味します。
OpenSSL ツールキットには、次のものが含まれます:
libssl.a: SSLv2、SSLv3、TLSv1 の実装と、 1 つのサーバーとクライアントで 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 のより一般的な形式)を含み、desx
cbc モード、高速な 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 証明書
バイナリ ASN1 との間の X509 エンコード/デコード、および PEM
ベースの ASCII-バイナリエンコーディング。これは秘密鍵による暗号化をサポートします。
RSA および DSA 証明書要求を生成し、
RSA および DSA 証明書を生成するプログラム。
システム
通常のデジタルエンベロープルーチンと base64 エンコーディング。
名前による暗号とダイジェストへの高レベルアクセス。新しい暗号は
実行時にロードできます。BIO IO システムは、シンプルなノンブロッキング
IO 抽象化です。現在サポートされているメソッドは、ファイル記述子、
ソケット、ソケット受け入れ、ソケット接続、メモリバッファ、バッファリング、SSL
クライアント/サーバー、ファイルポインタ、暗号化、ダイジェスト、ノンブロッキングテスト、
および null です。
データ構造
動的に成長するハッシュシステム
シンプルなスタック。
MS .ini ファイルと同様の形式を使用する設定ローダー。
openssl: 次の目的で使用できるコマンドラインツール: RSA、DH、DSA キーパラメータの生成 X.509 証明書、CSR、CRL の生成 メッセージダイジェストの計算 暗号による暗号化と復号化 SSL/TLS クライアントおよびサーバーテスト S/MIME 署名または暗号化メールの処理
さまざまな企業が、世界中のさまざまな場所で、さまざまなアルゴリズムに関するさまざまな特許を保有しています。 _あなた_は、あなたの国に特許がないかどうかを確認することで、 あらゆるアルゴリズムの使用が合法であることを保証する責任があります。 このファイルには、既知または存在が噂されている特許の一部が含まれています。 これは決定的なリストではありません。
RSA Security は RC5 アルゴリズムに関するソフトウェア特許を保有しています。この暗号を 使用する場合は、ライセンス条件について RSA Security に連絡する必要があります。 彼らのウェブページは http://www.rsasecurity.com/ です。
RC4 は RSA Security の商標であるため、このラベルの使用は RSA Security の許可がある場合のみ使用すべきでしょう。
IDEA アルゴリズムは、オーストリア、フランス、ドイツ、イタリア、 日本、オランダ、スペイン、スウェーデン、スイス、英国、米国で Ascom によって特許を取得されています。 そのアルゴリズムを使用する場合は連絡する必要があります。彼らのウェブページは 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 暗号化リクエストコーディネーターにコピーを送付してください。 時間を取って以下を参照してください。 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」出力です。 次のように生成することができます: