
堅牢なオープンソースツールキット。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ツールキットとその関連ドキュメントを育てる、世界中のボランティアコミュニティによって管理されています。
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暗号化 - 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抽象化)。現在サポートされているメソッド:ファイルディスクリプタ、ソケット、ソケット受付、ソケット接続、メモリバッファ、バッファリング、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プロジェクトにメールで報告してください:
[email protected]
なお、Request Trackerは一般的な支援やサポートの問い合わせには使用しないでください。期待通りに動作しないからといって、必ずしも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暗号化要求コーディネーターにCCを送った場合のみ受け入れられます。詳細については、以下のページを参照してください: http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) 「暗号化ソースコードが大きすぎてメールの添付ファイルとして送信できない」場合は、代わりにFAXで送信を受け付けています。格安の長距離電話プランをお持ちであることを願います。
変更の推奨形式は "diff -u" の出力です。以下のように生成できます: