
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の実装と、1つのサーバーとクライアントでSSLv2、SSLv3、TLSv1の両方をサポートするために必要なコード。
libcrypto.a: SSL/TLSに必要だが、論理的にはその一部ではない一般的な暗号化およびX.509 v1/v3関連の処理。以下のルーチンが含まれます:
暗号
libdes - 数年間ネット上で出回っていたEAYのlibdes DES暗号化パッケージで、後に彼によってSSLeayの一部として再ライセンスされたもの。cbcモードのdesx、高速なcrypt(3)、キーボードからパスワードを読み取るルーチンを含む、15種類のDESの「モード/バリエーション」(ecb、cbc、cfb、ofbの1、2、3キーバージョン、pcbc、およびより一般的な形式のcfbとofb)が含まれています。
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名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細(名前、バージョン)
- アプリケーションの詳細(名前、バージョン)
- 問題の説明(既知の場合は問題を再現する手順)
- スタックトレースバック(アプリケーションがコアダンプした場合)
バグは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暗号化リクエストコーディネーターにコピーが送信された場合にのみ受け付けられます。少し時間を取って以下のページを確認してください:
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」出力です。次のように生成できます: