GnuPGNo.11499
Iranoan さん 04/12/30 17:42
 
 秀まるおさん今日は、Iranoan です。
> gpg (GnuPG) 1.2.5
> Copyright (C) 2004 Free Software Foundation, Inc.
> This program comes with ABSOLUTELY NO WARRANTY.
> This is free software, and you are welcome to redistribute it
> under certain conditions. See the file COPYING for details.
>
> Home: c:/gnupg
> Supported algorithms:
> Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
> Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
> Hash: MD5, SHA1, RIPEMD160, SHA256
> Compression: Uncompressed, ZIP, ZLIB
では問題ないのですが、最近ヴァージョンアップした
> gpg (GnuPG) 1.4.0
> Copyright (C) 2004 Free Software Foundation, Inc.
> This program comes with ABSOLUTELY NO WARRANTY.
> This is free software, and you are welcome to redistribute it
> under certain conditions. See the file COPYING for details.
>
> Home: c:/gnupg
> Supported algorithms:
> Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
> Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
> Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
> Compression: Uncompressed, ZIP, ZLIB, BZIP2
だと、何故か上手く動作しません。具体的には、暗号化/署名や PGP/MIME か
に関わらず、
> gpg: conversion from `utf-8' to `CP0' not available
とエラーになります。
 勿論、どちらのヴァージョンも、
gpg -a -e -r xxxx@hoge.com hoge.txt

gpg hoge.txt.asc
は問題無く動作します。

 GnuPG の問題かもしれませんが、単独では動作していますので、取り敢えず
ご報告しておきます。
 こちらの環境は、Windows98+IE6.0+鶴亀 Ver.4.02 です。


[ ]
RE:11499 GnuPGNo.11500
秀まるお さん 04/12/31 22:35
 
 gpg起動時のコマンドラインは、ソースコード上で、

    if( mode == 0 ) {
        wsprintf( sz, "gpg --batch --yes -o %s -ea", szPgpOut);
    } else if( mode == 1 ) {
        wsprintf( sz, "gpg --batch --yes --force-v3-sigs --passphrase-fd 0 -
o %s -u\"%s\" -sat %s ", szPgpOut, pszFrom, szPgpIn );
        goto SkipAddRecipients;
    } else if( mode == 2 ) {
        wsprintf( sz, "gpg --batch --yes --force-v3-sigs --passphrase-fd 0 -
o %s  -u\"%s\" -esa", szPgpOut, pszFrom );
    }

 のようになっているようですけど、このコマンドラインが通らなくなってるっ
てことなんでしょうね。

 来年になったらぼちぼち調べて、またお返事させていただきます。

[ ]
RE:11500 GnuPGNo.11501
Iranoan さん 05/01/01 16:15
 
 秀まるおさん今日は、Iranoan です。
>         wsprintf(sz, "gpg --batch --yes -o %s -ea", szPgpOut);
<snip>
>  来年になったらぼちぼち調べて、またお返事させていただきます。
 宜しくお願いします。
 ただこのコマンド・ラインを見ると、「user ID」の指定が無いので、batch
オプションを使うなら、r オプションも使わないと駄目な気もします。コマン
ド・ラインで試した限りでは。
 ##だけど、その場合とエラー内容が違うんだよなあ〜。

[ ]
RE:11501 GnuPGNo.11502
秀まるお さん 05/01/04 16:13
 
 gpgのソースコードを見たら、GetConsoleOutputCPって関数を呼んでいて、そ
れが0を返すためにエラーになってしまうようでした。鶴亀メールではgpg.exeを
CreateProcess関数のパラメータ"DETACH_PROCESS"にて呼び出しているので、gpg.
exeのプロセスにコンソールは存在せず、結果としてそれがエラーとなって0が返
り、「CP0」のようなへんてこなコードページで処理しようとしてしまうようで
す。

 とりあえず鶴亀メールからgpg.exeを起動する時に「CREATE_NEW_CONSOLE」っ
てパラメータを指定してやったら直りましたけど、たぶんこれはgpg側で直すべ
き問題だと思います。ちなみに同じ問題をgoogleで探したら、TheBat!ってソフ
トでも起きているようです。

 はて、gpgさんに連絡するにも英語力が必要だし、CREATE_NEW_CONSOLEにして
も見た目上はコンソール(コマンドプロンプト用のウィンドウ)は出てこないし、
次回の鶴亀メールにて対応するってことにします。


------------------------------------------------------------------
 誰か英語力のある人いたら、strgutil.cの489行目の、

        sprintf (codepage, "CP%u", (unsigned int)GetConsoleOutputCP ());

 って所を、

        unsigned int cp = GetConsoleOutputCP();
        if( cp == 0 ) cp = GetACP();
        sprintf (codepage, "CP%u", cp );

 に直すように言ってください。

[ ]
RE:11502 GnuPGNo.11503
Iranoan さん 05/01/04 17:35
 
 秀まるおさん今日は、Iranoan です。
>  とりあえず鶴亀メールからgpg.exeを起動する時に「CREATE_NEW_CONSOLE」っ
> てパラメータを指定してやったら直りましたけど、たぶんこれはgpg側で直すべ
> き問題だと思います。
 色々調べて頂き有り難うございました。

> 次回の鶴亀メールにて対応するってことにします。
 どうも有り難うございます。

[ ]