OpenSSL 関数

PHP マニュアル
前のページ |  | 次のページ

# LXXIIOpenSSL 関数

警告
このモジュールは、実験的なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。

# 導入

このモジュールは、署名の生成および認証、そして、データのシール (暗号化)およびオープン(復号化)を行うために、 OpenSSL の関数を使用します。こ のモジュールでは、PHP 4.0.4pl1 は、OpenSSL >= 0.9.6 を必要としま すが、PHP-4.0.5以降では、OpenSSL >= 0.9.5 でも動作します。

> 注意 この拡張モジュールはまだ実験的なものであることに注意して下さい!

OpenSSL は多くの機能を提供しますが、これらはまだこのモジュールでは サポートされていません。

# キー/証明書パラメータ

OpenSSL関数のうちごく小数のみがキーまたは証明書パラメータを必要と します。PHP 4.0.5 より以前では、openssl_get_xxx 関数のどれかによ り返されたキーまたは証明書リソースを使用する必要がありました。こ れより後のバージョンでは、次の方法のどれかを使用することが可能と なる予定です。

- 証明書

  1. openssl_x509_read から返された X.509リソース

  2. `file://path/to/cert.pem` 形式の文字列。 このファイルは、PEMエンコードの証明書である必要があります。

  3. PEMエンコードされた証明書の内容を含む文字列。

- 公開/秘密キー

  1. openssl_get_publickey() または openssl_get_privatekey() から返されたキー リソース

  2. 公開キーのみ: X.509リソース

  3. `file://path/to/file.pem` フォーマットを 有する文字列。このファイルには、PEMエンコードされた証明書/ 秘密キーが含まれている必要があります。(両方を含むことも可能 です。)

  4. PEMエンコードされた証明書/キーの内容を含む文字列

  5. 秘密キーについては、array($key, $passphrase) という構文を使用することも可能です。 ただし、$key は、file:// または上記のテキスト表現形式を使用 して指定したキー、$passphrase はその秘密キーに関するパスワー ドを有する文字列を表します。

# 証明書の認証

サイン/証明書を認証する関数をコールする際、 cainfo パラメータは、ファイルと認証済みのCA ファイルの場所を指定するファイルディレクトリ名を含む配列です。 ディレクトリが指定された場合、opensslコマンド が使用できるような正しい形式にハッシュされたディレクトリである必 要があります。

# PKCS7 フラグ/定数

S/MIME 関数はビットフィールドを使用して指定したフラグを使用します。 このビットフィールドには、以下の値を一つ以上含むことが可能です。

表 1PKCS7 定数

定数 | 説明
--- | ---
PKCS7_TEXT | text/plain content type ヘッダを暗号化/サインを行うメッセー ジに追加します。復号化または認証を行う際には、このヘッダは出 力から取り除かれます。復号化または認証されたメッセージがMIME 型 text/plain でない場合、エラーとなります。
PKCS7_BINARY | 通常、入力されたメッセージは、CRおよびLFを行端として使用した 「正規化」された形式に変換されます。この形式は、S/MIME規格に 基づくものです。このオプションが指定された場合、変換が行われ ます。この機能は、MIME形式でないバイナリデータを処理する際に 便利です。
PKCS7_NOINTERN | メッセージを認証する際に、通常、メッセージに含まれる証明書が 証明書にサインする際に検索されます。 このオプションでは、 openssl_pkcs7_verify() の `extracerts` パラメータで指定した証明書 のみが使用されます。しかし、指定された証明書を信頼されていな いCAとして使用することも可能です。
PKCS7_NOVERIFY | サイン済みのメッセージにサインした人の証明書を認証しません。
PKCS7_NOCHAIN | サインを行った側の証明書の認証の連鎖を行いません。 この場合、サイン付きのメッセージにある証明書を未認証のCAとし て使用しません。
PKCS7_NOCERTS | メッセージにサインする際、通常サインをする人の証明書が挿入さ れます。このオプションを指定した場合はそうなりません。これに より、サイン付きのメッセージのサイズは小さくなりますが、認証 側が、(例えば、openssl_pkcs7_verify()の `extracerts`により渡すことにより)サイン をした人の証明書のコピーをローカルに用意する必要があります。
PKCS7_NOATTR | 通常、メッセージがサインされる時、サインした時間やサポートさ れる対象アルゴリズムを含む一連の属性が付加されます。このオプ ションを指定した場合、それらの属性は付加されません。
PKCS7_DETACHED | メッセージにサインをする際、MIME型 multipart/signed を指定し てクリアテキストでサインを行います。これは、 openssl_pkcs7_sign() において フラグを指定しなかった場合の `flags` パ ラメータのデフォルトです。このオプションをオフにした場合、メッ セージは不透明なサインによりサインされます。これは、メールリ レイによる変換に対してより耐性がありますが、S/MIMEをサポート しないメールエージェントでは読むことはできません。
PKCS7_NOSIGS | メッセージにサインや認証を試みません。

> 注意 これらの定数は、4.0.6 で追加されました。

前のページ | ホーム | 次のページ
OCIWriteLobToFile | 上に戻る | openssl_csr_export_to_file