
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の実装、および単一のサーバーとクライアントで 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証明書
バイナリASN1との間のX509エンコード/デコード、および秘密鍵
による暗号化をサポートする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プロジェクトへバグを報告してください:
リクエストトラッカーは、一般的な支援やサポートの問い合わせに使用すべき ではないことに注意してください。何かが期待どおりに動作しないからといって、 それが必ずしも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」出力です。次のように生成できます: