[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
このライブラリーの最上位インタフェースはとても単純で、公開鍵による暗号の 操作のみを想定しています。
PGG を使うためには、アプリケーションプログラムの冒頭で次の S 式を評価し てください。
(require 'pgg) |
実行時に pgg.el の存在を確認したいなら、上記の方法ではなく以下のように、 必要な機能の autoload を設定することもできます。
(autoload 'pgg-encrypt-region "pgg" "Encrypt the current region." t) (autoload 'pgg-encrypt-symmetric-region "pgg" "Encrypt the current region with symmetric algorithm." t) (autoload 'pgg-decrypt-region "pgg" "Decrypt the current region." t) (autoload 'pgg-sign-region "pgg" "Sign the current region." t) (autoload 'pgg-verify-region "pgg" "Verify the current region." t) (autoload 'pgg-insert-key "pgg" "Insert the ASCII armored public key." t) (autoload 'pgg-snarf-keys-region "pgg" "Import public keys in the current region." t) |
3.1 ユーザーコマンド | ||
3.2 どの実装を使うか | ||
3.3 パスフレーズをキャッシュする | ||
3.4 ディフォルトのユーザー ID |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この時点で、いくつかの暗号に関するコマンドを使うことができます。これらの
コマンドの挙動は起動方法に依存します。これらのコマンドは、ライブラリー関
数として利用されることもあるからです。例えば、あなたがある署名者の公開鍵
を持っていないと pgg-verify-region
という関数は即座に失敗しますが、
これが対話的に呼び出された場合には、サーバーから公開鍵をダウンロードする
かどうかをあなたに尋ねます。
start と end の間の領域を recipients 宛に送るものとし て暗号化します。対話的に呼ぶと、受信者を尋ねます。
暗号化に成功すると、現在の領域の内容を暗号化したデータで置き換えます。
オプション引数 sign が nil
でなかったら、署名と暗号化を同時
に行ないます。現在この機能は GnuPG で動作することが確認されていますが、
PGP や PGP5 では動作しないかもしれません。
オプション引数 passphrase が nil
だったら、パスフレーズの
キャッシュからか、またはユーザーに入力してもらうことによってパスフレーズ
を得ます。
現在の start と end の間の領域を、共通鍵暗号 (symmetric cipher) で暗号化します。呼び出した後でパスフレーズが尋ねられます。
オプション引数 passphrase が nil
だったら、パスフレーズの
キャッシュからか、またはユーザーに入力してもらうことによってパスフレーズ
を得ます。
共通鍵暗号による暗号化は、現在 GnuPG だけで実装されています。
start と end の間の領域を解読します。解読に成功すると、現在 の領域の内容を解読したデータで置き換えます。
オプション引数 passphrase が nil
だったら、パスフレーズの
キャッシュからか、またはユーザーに入力してもらうことによってパスフレーズ
を得ます。
start と end の間のテキストに署名します。三番目のオプション
引数 cleartext が nil
ではないか、あるいは対話的に呼ばれた
場合、分離された署名を作りません。そのような場合には、現在の領域の内容を
署名したデータで置き換えます。
オプション引数 passphrase が nil
だったら、パスフレーズの
キャッシュからか、またはユーザーに入力してもらうことによってパスフレーズ
を得ます。
start と end の間の領域にある署名を検証します。三番目のオプ
ション引数 signature が nil
でなかったら、その引数は現在の
領域の分離された署名のファイルとして取り扱われます。
四番目のオプション引数 fetch が nil
ではないか、あるいは対
話的に呼ばれた場合、公開鍵をサーバーから取得します。
ユーザーの公開鍵を取得して、それを ASCII 装甲の形式で挿入します。
start と end の間の領域にある公開鍵を集め、ユーザーの鍵 束 (keyring) に追加します。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
PGP は歴史が長く、今では多くの実装を利用することができるので、それぞれが 持っている個々の機能がずいぶん異なっていることがあります。例え ば GnuPG を使っているのならば、暗号アルゴリズムとして 3DES や CAST5、 BLOWFISH などを選ぶことができますが、PGP のバージョン 2 は IDEA しかサポー トしていません。
どの実装を使うかは pgg-scheme
変数が制御します。nil
だった
ら (それがディフォルト)、代わりに pgg-default-scheme
変数の値を使
います。
どの PGP 実装を用いるかを強制します。設定できるのは gpg
、
pgp
および pgp5
のどれかです。ディフォルトは nil
で
す。
ディフォルトの PGP 実装です。値は gpg
、pgp
およ
び pgp5
のどれかでなければなりません。ディフォルト
は gpg
です。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
PGP 実装として GnuPG (gpg) を使うのであれば、パスフレーズの入力とキャッ
シュ(1)するために gpg-agent
というプログラムを使うことを推奨します。
nil
でない値では、可能な場合は常にいつでも gpg-agent
を使
おうとします。ディフィフォルトは t
です。gpg-agent
が稼働
していないか、または GnuPG が現在の PGP 実装として選択されていない場合は、
PGG 自身が持っているパスフレーズをキャッシュする仕組みが使われます (下記
参照)。
PGG で gpg-agent
を使うには、第一に gpg-agent
が確実に稼働
しているようにしてください。例えば X Window System を走らせているのであ
れば、以下の行をあなたの ‘.xsession’ ファイルに置くことによって、そ
れを確実にすることができます:
eval "$(gpg-agent --daemon)" |
gpg-agent
の起動に関するさらに詳しいことは、See (gnupg)Invoking GPG-AGENT section ‘Invoking GPG-AGENT’ in Using the GNU Privacy Guard.
GnuPG のパスフレーズを必要とする PGG の機能を実行するときはいつも、
GnuPG は gpg-agent
とやり取りを行ない、それはあなたにパスフレーズ
を入力することを要求します。しかし gpg-agent
がその結果を「キャッ
シュ」するので、次回以降の実行では再びパスフレーズの入力は要りません。
(通常このキャッシュは一定時間経過後に期限切れ消去されます。これを変更す
るには、gpg-agent
を起動するときに --default-cache-ttl
オ
プションを使ってください。)
X Window System の環境では gpg-agent
はパスフレーズの入力を要求す
るためにグラフィックなウィンドウを開きます。しかし文字端末で Emacs を使っ
ている場合は、gpg-agent
は端末からの入力を受け取る上で問題があり
ます。それが Emacs に送られてしまうからです。この問題に対処するための暫
定的な対策のひとつは、gpg-agent
を --keep-tty
オプションと
ともに Emacs とは別の端末で走らせることです。これは gpg-agent
に、
パスフレーズの入力にそれ自身の端末を使うようにさせます。
gpg-agent
を使わない場合、PGG は Emacs を介してパスフレーズの入力
を要求します。これにはパスフレーズをキャッシュする仕組みがあり、それは変
数 pgg-cache-passphrase
で制御されます (下記参照)。
gpg-agent
ではなく PGG でパスフレーズを扱う場合には安全上のリスク
があります。Emacs の要求に従ってパスフレーズを入力すると、それは一時的
に Emacs が実行しているメモリーに cleartext 文字列として格納されます。も
しそのメモリーがディスクとの間で swap されると、理論上 root ユーザーはパ
スフレーズを swap ファイルから抽出することができます。その上、そのシステ
ムが廃棄されたり盗難に会った後も、その cleartext のパスフレーズが含まれ
ている swap ファイルはディスクに残っているかもしれないのです。
gpg-agent
はメモリーを lock するような策をもって、この問題を回避
しています。それは Emacs には実装されていません。
nil
でなければ、パスフレーズを保持します。初期値は t
です。
しかし、あなたがセキュリティについて気掛かりなら、この変数
を nil
に設定することによって、パスフレーズのキャッシュをやめさせ
ることができます。
パスフレーズを保持しておく時間を秒で指定します。
パスフレーズが非-ASCII 文字を含んでいる場合は、それをエンコードするため の coding system を指定する必要があります。GnuPG はパスフレーズを文字列 としてではなく、バイト列として扱うからです。
パスフレーズをエンコードするための coding system です。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
通常 PGP の実装は、暗号化および復号化に使う適切な鍵を選ぶことができます が、あなたが一つ以上の鍵を持っている場合、用いる鍵の id を指定する必要が あります。
ディフォルトのユーザー ID です。指定しない場合 は ‘(user-login-name)’ の戻り値がディフォルトになります。この変数は カスタマイズ可能です。
GnuPG で使うディフォルトのユーザー ID です。ディフォルトは ‘nil’ で
す。nil
ではない値にすると、‘pgg-default-user-id’ より優先し
て使われます。カスタマイズ可能です。
PGP 2.x/6.x で使うディフォルトのユーザー ID です。ディフォルト
は ‘nil’ です。nil
ではない値にすると、
‘pgg-default-user-id’ より優先して使われます。カスタマイズ可能です。
PGP 5.x で使うディフォルトのユーザ ID です。ディフォルトは ‘nil’ で
す。nil
ではない値にすると、‘pgg-default-user-id’ より優先し
て使われます。カスタマイズ可能です。
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Yasutaka SHINDOH on May 11, 2011 using texi2html 1.82.