
SSL/TLSプロトコルをサポートし、暗号化、復号化、ハッシュ化、X.509証明書管理を備えた本格的な暗号ライブラリです。安全なネットワーク通信とデータセキュリティを実現します。
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 ツールキットとその関連ドキュメントのコミュニケーション、計画、開発を行う、世界中のボランティアのコミュニティによって運営されています。
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 の一部として彼によって再ライセンスされました。DES の 15 の「モード/バリエーション」(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 証明書
バイナリ ASN1 との間の X509 エンコード/デコード、および秘密鍵による暗号化をサポートする PEM
ベースの ASCII バイナリエンコード。RSA および DSA 証明書要求を生成し、RSA および DSA 証明書を生成するプログラム。
システム
通常のデジタルエンベロープルーチンと base64 エンコード。名前による暗号とダイジェストへの高レベルアクセス。実行時に新しい暗号をロードできます。単純な非ブロッキング IO 抽象化である BIO io システム。現在サポートされているメソッドは、ファイル記述子、ソケット、ソケット accept、ソケット connect、メモリバッファ、バッファリング、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 名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細 (名前、バージョン)
- アプリケーションの詳細 (名前、バージョン)
- 問題の説明 (問題を再現する手順、既知の場合)
- スタックトレースバック (アプリケーションがコアダンプする場合)
リクエストトラッカー (http://www.openssl.org/support/rt.html) を介して、次のメールアドレスに OpenSSL プロジェクトへバグを報告してください:
[email protected]
リクエストトラッカーは、一般的な支援やサポートの問い合わせに使用すべきではないことに注意してください。何かが期待どおりに動作しないからといって、それが必ずしも 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 [原文ママ] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR セクション 740.13(e)) 「暗号化ソースコードが電子メールの添付ファイルとして提供するには大きすぎる」場合は、FAX で受け取ってもらえると喜ばれます。安い長距離プランをお持ちであることを願います。
変更の推奨形式は "diff -u" 出力です。次のように生成できます: