|
>> SSL_get_error();← "5"が返ってきます >よくわかりませんが、5 ってのは include/openssl/ssl.h の > #define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */ >ですよね。 おそらく#define SSL_ERROR_SYSCALL 5の5だと思います。 >http://www.openssl.org/docs/ssl/SSL_get_error.html > Some I/O error occurred. The OpenSSL error queue may contain more information > on the error. If the error queue is empty (i.e. ERR_get_error() returns 0), ret > can be used to find out more about the error: If ret == 0, an EOF was observed > that violates the protocol. If ret == -1, the underlying BIO reported an I/O > error (for socket I/O on Unix systems, consult errno for details). >の通りにやってみるとどうなりますか? 再度デバッグをしたところssl_connect()の戻り値は-1ではなく0でした。 10回ぐらい連続で動かしてると-1が戻ることもあります。 戻り値が0ですとプロトコルに違反したEOFが見つかったとありますので、 SSL_CTX *ctx = SSL_CTX_new(SSLv23_client_method()); と、プロトコル設定をしているのが悪いのかと思い TLSv1_client_method()などに変えてみましたが効果はありませんでした。 EOFに関してはEnd Of Fileしか思い浮かばずお手上げです。 戻り値が-1のときのBIO云々に関してもぐぐって見つけたソースを追加してみましたが こちらも効果はありませんでした。 Winsock2を使ってproxy経由のときだけssl_connect()でエラーになるほうが難しいと 思うのですが・・・ こればかりやっていられないので、cygwinの方を使うことにします。 |
|
初めて書き込みさせていただきます。 http://x68000.q-e-d.net/~68user/net/rsa-1.html に書かれているrsa1.cをVisal Studio 2005で実行させたいのですが、可能でしょうか? |
|
>>4744 peace そのままでは動かないので、 http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=981427&SiteID=7 などを参考にしてください。 |
|
初めまして、hornetsと申します。 このサイトには、OpenSSLを用いたRSA暗号のプログラムが掲載されていますが、 OpenSSLを用いてElGamal暗号もできるのでしょうか? 教えていただけたら幸いです。 |
|
>>4746 hornets > OpenSSLを用いてElGamal暗号もできるのでしょうか? 現時点の OpenSSL には ElGamal は実装はされていません。 OpenSSL の ML を探すと、実装が欲しいなら http://mixmaster.sourceforge.net/ を見れば、とありました。 # http://marc.theaimsgroup.com/?l=openssl-users&m=92476310717523&w=2 |
|
初めまして。Kenichi Maehashi と申します。 いつもネットワーク関連の情報を拝読させていただいております。 さて、 >> http://x68000.q-e-d.net/~68user/net/module-pop3.html を参考にさせていただきながら、POP3 クライアントを書いたのですが、 実行すると、カレントディレクトリに msg-xxxxx-x.txt というような テキストファイルが出力されてしまいます。(x は数字です) これは Net::POP3 モジュールの仕様なのでしょうか。 または、出力をしないような設定方法はありますでしょうか。 ご教示いただければ幸いです。 よろしくお願いいたします。 |
|
>>4748 Kenichi Maehashi Perl5.8.5 の Net::POP3 で試してみましたが、そのようなファイルは 生成されませんでした。 Net/POP3.pm や、それが利用している Net/Cmd.pm、Net/Config.pm を見ても、 msg-xxxx-x.txt というファイルが生成されるようには見えませんでしたので、 今一度確認していただけますか。接続時に $pop = Net::POP3->new($hostname, Debug => 1); と Debug を ON にすると何かわかるかもしれません。 |
|
>>4748 68user さま 有り難うございます。 コードを削って確認してみたところ、併用していた MIME::Parser モジュールが 出力するファイルであることが分かりました。確認不足で申し訳ありません。 MIME::Parser の出力するメッセージファイルは出力しないよう設定できないのでしょうか。。。 重ね重ね申し訳ございませんが、何卒宜しくお願い致します。 |
|
>>4750 Kenichi Maehashi よくわかりませんが、output_to_core でしょうか。 http://search.cpan.org/~eryq/MIME-tools-5.411a/lib/MIME/Parser.pm output_to_core YESNO Instance method. Normally, instances of this class output all their decoded body data to disk files (via MIME::Body::File). However, you can change this behaviour by invoking this method before parsing: If YESNO is false (the default), then all body data goes to disk files. If YESNO is true, then all body data goes to in-core data structures This is a little risky (what if someone emails you an MPEG or a tar file, hmmm?) but people seem to want this bit of noose-shaped rope, so I'm providing it. Note that setting this attribute true does not mean that parser- internal temporary files are avoided! Use tmp_to_core() for that. With no argument, returns the current setting as a boolean. |
|
>>4748 68user さま お世話になっております。 ご指摘の通り、$parser->output_to_core(1); で解決できました。 このページはチェックしていたのですが、見落としておりました。。。申し訳ありません。 本当に有り難うございました。 |
|
はじめましてwここのHPをみてソケット通信を勉強しています。 よろしくお願いします。 perlを使ってサーバプログラムとクライアントプログラムを作り ソケット通信をしています。 ActivePerlを使用し、ローカルマシンでは通信できているので 実際にサーバプログラムをサーバにUPしてテストしたいと思い プロバイダからもらった領域にFTPでUPしました。 で、質問なのですが サーバプログラムが仮に http://www.aaa.com/user/test.pl という アドレスにある場合 クライアントプログラムの IO::Socket::INET->new( PeerAddr ... ); のPeerAddrはどう変えればいいのでしょうか? ※モジュールを使ってみようを参考にしています。 またほかにも何かしなければいけないのでしょうか? よろしくお願いいたします。 |
|
>>4753 サーバにUPしたプログラムと通信したい $socket = IO::Socket::INET->new( PeerAddr => 'www.aaa.com', PeerPort => '80', Proto => 'tcp'); ); でよいです。 http://perldoc.perl.org/IO/Socket/INET.html に書き方のサンプルが あるので、ざっと眺めてみてください。 |
|
ありがとうございます。 PeerAddr => 'www.aaa.com' を指定した場合 user/test.pl この部分はどうなるのでしょうか? 特に指定しなくても通信できるのでしょうか? |
|
>>4755 かみゅ IO::Socket はソケットのモジュールです。その上に HTTP を流すのであれば HTTP クライアントを作ってみよう(1)〜(4) を読んで、送信すべき HTTP リクエストはどんなものなのかを調べてください。 |
|
初めまして、書き込みさせていただきます。 現在RSAについて学んでおり、非常に有用な情報としてこちらのHPを拝見させていただきました。 さて、http://x68000.q-e-d.net/~68user/net/rsa-1.htmlに記載されているrsa-1.cをコンパイル してみたところ、openssl関連のヘッダファイルが読み込まれない旨のエラーが返され、 実行できません。実行環境としてVineLinux3.1にてgccコンパイラを用いており、opensslの バージョンは最新版と思われる0.9.8をインストールしております。 対策方法をご教授いただければ幸いです。よろしくお願いします。 |
|
>>4757 matsumoto まずは rsa.h や engine.h のありかを探してください。 例えば /usr/local/include/openssl/rsa.h が存在するなら % gcc -I /usr/local/include rsa-1.c とします。 |
|
はじめまして。STと申します。 CGI初心者です。 質問させていただきます。 「静的な画像表示」のところで、該当するソースをコピーして サーバーにアップした後http://〜cgiと入力しGIFファイルを表示させようとすると 「GIF89aX」と表示されます。 パーミッションはOKで画像ファイルは存在します。 解決方法を教えていただけますと幸いです。 よろしくお願いします。 |
|
>>4759 ST http://chaichan.web.infoseek.co.jp/qanda/qa7041.htm に一本化ということで。 |
|
http://x68000.q-e-d.net/~68user/webcgi/sample/perl/graph-maker.cgi にて日本語を出す方法のメモ。 % cvs di -u cvs diff: Diffing . Index: graph-maker.cgi =================================================================== RCS file: /home/68user/cvsroot/public_html/webcgi/sample/perl/graph-maker.cgi,v retrieving revision 1.9 diff -u -r1.9 graph-maker.cgi --- graph-maker.cgi 26 Feb 2006 08:31:21 -0000 1.9 +++ graph-maker.cgi 13 Feb 2007 13:12:16 -0000 @@ -886,6 +886,8 @@ } } + GD::Text->font_path( "/usr/local/share/fonts/TrueType/" ); + $graph->set_title_font("sazanami-gothic", 14 ); my $image = $graph->plot($ref_data) or die "Cannot create image"; binmode STDOUT; |
|
findコマンドの使い方について教えて下さい。 findコマンドで検索を行う場合、指定したディレクトリ内だけ 検索を行い、下位のディレクトリは対象外にしたいのですが できるのでしょうか。 例えば、/tmp配下を検索するとして、 /tmp /tmp/backup /tmp/save とあった場合、 /tmp内だけを検索し、/tmp/backupや、/tmp/saveなどの下位ディレクトリ内 は見ないようにしたいのです。 find /tmp -name "*.csv" ! -size 0 -print ドキュメントに、「-prune」がありましたが、指定すると、表示すべきものが でてきません。上手くいきませんでした。 find /tmp -name -prune "*.csv" ! -size 0 -print find /tmp -name "*.csv" -prune ! -size 0 -print また、ファイル名は、ワイルドカード指定なので、表示後のgrepなども 使えません。 環境は、 Solaris8 Bシェル |
|
>>4762 べた 試してませんが、 % find /tmp -name "*.csv" -o -name backup -prune -o -name save -o ! -size 0 -print ですかね。 とはいえ、 - maxdepth オプションを使える find をインストールする - grep '^/[^/]*/[^/]*$' としてパスに '/' が 2個以上含まれないことを チェックする - ls -l /tmp/*.csv | awk '$5~/^0$/{print $9}' などの方法がよいような気もします。 |
|
>> 4763 ありがとうございます。 >% find /tmp -name "*.csv" -o -name backup -prune -o -name save -o ! -size 0 -print ですが、配下のディレクトリを全て網羅するのは。。。 また、試してみましたが、直下のファイルがでませんでした。 > - maxdepth オプションを使える find をインストールする > - grep '^/[^/]*/[^/]*$' としてパスに '/' が 2個以上含まれないことをチェックする 実際には、パスに、’/’が2個以上含まれるているので無理かと。 > - ls -l /tmp/*.csv | awk '$5~/^0$/{print $9}' これが、一番よい方法になるのですかね。 |
|
>>4764 べた > 直下のファイルがでませんでした。 FreeBSD では表示されました。Solaris の find は出ないのでしょうか。 > 実際には、パスに、’/’が2個以上含まれるているので無理かと。 「3個以上」の誤りでした。 ベストなのは「/tmp/ 直下に置くといういまいちな仕様を直す」だと 思いますが、それができれば苦労してないんでしょうね。 |