68user's page 掲示板

Prev< No. 4501〜4535> Next  [最新発言に戻る] [過去ログ一覧]
No. 4501 # hidemaru [E-mail] 2006/02/05 (日) 12:02:32
はじめまして、漠然とした質問なのですが、
SSLv3のハンドシェイク処理の部分を実際に
(Cで)実現する方法を知っている方、もしくは
何か参考になるものがあれば教えてください。

No. 4502 # hidemaru 2006/02/05 (日) 12:08:35
環境は、vine linux 、 openssl-0.9.7d-0vl3.2 です。

No. 4503 # esam 2006/02/06 (月) 19:01:18
はじめましてe。いつもいろいろと参考にさせてもらってます。
いろいろ試したのですが、わからないので質問させて下さい。
http://tomorrows-wind.at.webry.info/200507/article_21.html
↑ちょうど私の書いたプログラムとほぼ同じだったので
ちょっと勝手に拝借したんですが、このソース
私のやってる環境では、エラーがでるんですよね。
エラーが出るのは、最後のRSA_private_decrypt関数です。
これは私だけなんでしょうか?どなたか試していただけませんか?
鍵に関しては、コマンドラインから暗号化,復号化に成功しているので
問題ないと思われます。
お願いします。
実行環境:vine linux OpenSSL 0.9.7d 17 Mar 2004

No. 4504 # tkoba 2006/02/06 (月) 19:54:42
>>4503 esam
dectxt = malloc(RSA_size(rsapriv));
を、
dectxt = calloc(1, RSA_size(rsapriv));
と書き換えることでエラーが消えることを確認しました。

(環境: Vine Linux 3.2, OpenSSL 0.9.7d 0vl3.2)

No. 4505 # tkoba 2006/02/06 (月) 20:15:29
>>4503 esam

>>4504 は無視してください。

> http://tomorrows-wind.at.webry.info/200507/article_21.html

plaintxt = malloc(sizeof(char)*7);
strcpy(plaintxt, "abcdefg");
というのがおかしいですね。ここを直せばうまく動いた気がします。

No. 4506 # tkoba 2006/02/06 (月) 20:55:40
>>4503 esam
たびたびすみません。

if((enclen = RSA_public_encrypt(strlen(plaintxt), ...

if((enclen = RSA_public_encrypt(strlen(plaintxt) + 1, ...
とし、
if((declen = RSA_private_decrypt(strlen(enctxt), ...

if((declen = RSA_private_decrypt(RSA_size(rsapub), ...
としなければいけません。

No. 4507 # tkoba 2006/02/06 (月) 20:59:14
>>4503 esam

if((declen = RSA_private_decrypt(RSA_size(rsapub), ...

if((declen = RSA_private_decrypt(enclen, ...
のほうがスマートな気がしてきました。

No. 4508 # dynamite [E-mail] 2006/02/07 (火) 00:42:39
はじめまして、68userさん
おじゃまいたします。

ネットワークプログラミングの基礎知識
大変参考にさせてもらってます!

現在、SSL/TLS でアクセスしてみよう (1)
や >>3958 の記事のsslでkeep-aliveを参考にして
sslでの接続を勉強させて頂いています。

早速ですが
https-client-keep-alive.c や
テストで接続と切断を関数化して分けてみて、
リクエストを送らず受信もしないと
SSL_shutdown()で0を返します。
(丁度、https-client.c のソースの118行目から146行目までを削った状態です)

ためしに接続、受信、切断とすると
SSL_shutdown()で1を返すので、
(丁度、https-client.c のソースの118行目から128行目までを削った状態です)

受信が最後まで完了しなければ、
SSL_shutdown()で0を返しERR_print_errors_fp
には何も出力しないと推測しているのですが、
間違っていないでしょうか?

ご存知の方いらっしゃいましたら
ご教授頂けないでしょうか。m(_ _)m

(環境: fedora core 4, gcc-4.0.2-8.fc4, openssl-0.9.7f-7.10)

No. 4509 # esam 2006/02/07 (火) 12:39:49
>>tkobaさん
早急な返信ありがとうございました。
いわれたとおりになおしてみました。
あとは、>>4505の部分ですが。。。
いろいろためしてみましたがやはりエラーがでてしまいます。

No. 4510 # esam 2006/02/07 (火) 12:48:39
>>tkobaさん
すみませんできていました。
問題は ご指摘のとおりRSA_private_decrypt関数の第一引数でした。
ありがとうございました。

No. 4511 # blueeyes 2006/02/07 (火) 19:07:44
はじめまして
先日freebsd 6.0をインストールをしました。昨日までxdm順調に動いていました。
今日、xdmでloginできなくなりました。ユーザー名とパスワードを入力したら、また
登録画面が出てきました。本来welcome to hostname のところは今welcome to 1に
なりました。どういう原因でしょうか。よろしくお願いします。

No. 4512 # 2006/02/11 (土) 13:40:16
>>4500 zsh
(NR と FNR では、複数ファイルを入力とした時に値が異なります。)
どうなるのでしょうか。
どのように確認できますか。

No. 4514 # ロー 2006/02/11 (土) 18:39:14
UNIXのシェルで2点教えて頂きたいことがあります。

●1点目
sedコマンドを使用して置換したいのですが、sed内で変数は
使用可能なのでしょうか。

-----------------
#!/bin/sh

DIR="/home/guest/"
ls ${DIR}*.CSV | sed 's/$DIR}//g'

置換されずにそのまま出力されます。
シェル内の変数を、sedに渡して置換させることは可能なのでしょうか。

ls ${DIR}*.CSV | sed 's/\/.*\///g'
削除した部分がディレクトリと言う事なので、「's/\/.*\///g'」として
みたのですが、正しい使い方なのでしゅか。

●2点目
変数に格納されているファイル名から番号が一番大きいファイル名
を作りたいのですが、awkを使用して簡単にできますか。

例えば、/tmp配下に、
test0001.CSV
test0002.CSV
test0004.CSV
とファイルがあるとします。
ls、変数に格納し、awk等で、「test0005.CSV」を求めたいのですが。

---------
#!/bin/sh

FileLst=`ls /tmp/*.CSV`
echo $FileLst | awk ?????

No. 4515 # ロー 2006/02/11 (土) 18:41:13
>>4514 ロー
環境を書き忘れました。

UNIX:Soralis8
シェル:Bシェル

No. 4516 # 68user 2006/02/13 (月) 11:45:19
UNIX の部屋 http://x68000.q-e-d.net/~68user/unix/ を更新しました。

>>4460 mkt
> ・fgrep と Gimp の解説文が途中で切れてしまっているように思います。
fgrep については、とりあえず掲示板での発言にリンクを張りました。
    http://x68000.q-e-d.net/~68user/unix/pickup?fgrep

> ・記号の 2 項目め(「"」の項と思われる部分)の見出し行が抜け落ちてしまってます。
正しく表示されるようにしました。
    http://x68000.q-e-d.net/~68user/unix/pickup?%22

" の解決のため、10年近くつぎはぎでやってきた汚い部分を全面的に見直し
たため、もしかしたら UNIX の部屋の検索部分にエンバグしている可能性が
あります。怪しい挙動を見つけられた方は教えていただけると幸いです。

>>4501 hidemaru
> SSLv3のハンドシェイク処理の部分を実際に(Cで)実現する方法
>>4502 hidemaru
> 環境は、vine linux 、 openssl-0.9.7d-0vl3.2 です。
OpenSSL を使っていいなら SSL_connect(3) を使えばいいですし、OpenSSL を
使わないなら「環境は OpenSSL」とわざわざ書く理由がわからないです。

>>4508 dynamite
> SSL_shutdown()で0を返しERR_print_errors_fp には何も出力しないと
> 推測しているのですが
わたしもよくわかってませんが調べる時間がないです。すみません。
マニュアルにそう書いてありますか?

>>4511 blueeyes
> 本来welcome to hostname のところは今welcome to 1になりました。
原因はわかりません。リブートしても同じ挙動かどうか、シングル
ユーザモードで起動するとどうなるか、/var/log に何か出ていないかを
確認してください。

>>4514 ロー
> ls ${DIR}*.CSV | sed 's/$DIR}//g'
'' で囲んだら変数展開されないので、"" で囲みましょう。変数展開できた
としても s//home/guest///g は sed 的にエラーですが、これはまた別の話。

> ls、変数に格納し、awk等で、「test0005.CSV」を求めたいのですが。
「ls で表示したときに最後に表示される行」とみなせるのであれば、
    echo $FileLst | awk '{print $NF}'
など ($NF は gawk では動きましたが、一般的な awk で使用できるかどうかは
わかりません)。

まぁ、awk には列で渡すのではなく、行で渡した方が幸せだと思うので、
    ls /tmp/*.CSV | awk 'END { print }'
の方がいいと思います。とか言い出すと、
    ls /tmp/*.CSV | tail -1
でいいじゃん、って話になりますけどね。

No. 4517 # ロー 2006/02/13 (月) 13:22:09
>>4516 68user

ありがとうございます。
>> ls ${DIR}*.CSV | sed 's/$DIR}//g'
>'' で囲んだら変数展開されないので、"" で囲みましょう。変数展開できた
>としても s//home/guest///g は sed 的にエラーですが、これはまた別の話。
ダブル「""」で囲んだら展開されませんでした。シングル「''」で囲んだら展開
されました。

> echo $FileLst | awk '{print $NF}'
>など ($NF は gawk では動きましたが、一般的な awk で使用できるかどうかは
>わかりません)。
一般的なawkでも使用できました。

>ls /tmp/*.CSV | awk 'END { print }'
は、ダメでした
結果が得られませんでした。

No. 4518 # zsh 2006/02/15 (水) 11:38:18
>>4512
FNR に現在処理しているファイルのカレントレコード番号が
セットされるのに対して、NR には (n)awk が実行されてから
読み込んだレコード数がセットされています。
  $ nawk '{ print "NR:" NR "/FNR:" FNR }' a.txt b.txt
等とすれば違いが確認できると思います。

>>4517 ロー
Solarisの(n)awkでは
  $ /tmp/*.CSV | awk '{ f=$0; } END { print f }'
のようにしないといけないようです。

No. 4519 # 2006/02/15 (水) 17:14:16
>>4518 zsh
ありがとうございます。

awkのmatch関数なのですが、awk内で使用するとエラーが
ですのですが、どこか使い方がいけないのでしょうか。

抜粋ですが、
awk '
{
pos=match($1,/.CSV$/);
}' ${TEMPFILE}
ファイル名から拡張子以降を取り除くため、拡張子までの
位置を求めようとしています。

awk: syntax error near line 10
awk: illegal statement near line 10
awk: 構文エラー (10 行目の周辺)
awk: 不正な文を検出しました。 (10 行目の周辺)
が発生します。

No. 4520 # zsh 2006/02/15 (水) 19:21:20
>>4519
Solaris 標準の awk (/usr/bin/awk) には、match 関数が存在しません。
対応策としては
  (1)index 関数を使用する
        →ただし、index 関数は正規表現を使用できません。
  (2)nawk を使用する
  (3)/usr/xpg4/bin/awk を使用する
といった所でしょうか。

No. 4521 # dynamite 2006/02/16 (木) 02:31:45
>>4516 68user
返答ありがとうございます。

マニュアルは下記をざっと目を通してみたのですが、記載が見付けれませんでした。
http://www.infoscience.co.jp/technical/openssl/news/
http://home.att.ne.jp/theta/diatom/

前回の書き込みで受信関係がおかしいと推測してしまいましたが、
ためしにContent-Lengthの値分だけ受信しても同じ状態なので、
現在、違う部分も検証しています。

また理解が深まりましたら報告させて頂きますm(_ _)m

No. 4522 # むう 2006/02/16 (木) 17:30:44
はじめまして。素朴な疑問があるので、もし知っておられたらお答えください。
一般論として、ネットワーク上ではTCPとUDPはどっちが優先度が高いのでしょうか?
輻輳した場合に生き残る確率?に違いはありますか?
とにかくガンガンパケットを送りつけるプログラムで実験してみたところ、
気持ち程度UDPが優先されている気がしますが、確証が持てません。
LinuxのsocketオプションにSO_PRIORITYというのがあり、デフォルトは
TCPもUDPも0でした。
setsockoptで優先度を変えてみても誤差程度の差しか認識できません。
Webで「TCP UDP 優先度」などで探してもいい資料が見つからない状態です。
何かそのあたりの情報を知っていたら教えていただけないでしょうか。

No. 4523 # 68user 2006/02/17 (金) 00:52:11
>>4522 むう
- 一般的に、OS がどちらを優先するということは聞いたことがない。
- ただ、実装によっては得手不得手がある可能性はある。
- しかし一般的に TCP の方が高機能であり行うべき処理も多いため、
    スループットという点に関しては UDP の方が有利であろう。
- 当然ながら帯域制御ができるルータ・OS であれば、どちらかを優先する
    ことは可能であろうが、これは設定の問題。
- SO_PRIORITY は IP の TOS (Type of Service) に設定される。
- TOS の値を改変してしまうルータがあるようで、チェックサム計算からは
    除外されたりするかわいそうなフィールド。
- また、TOS は DiffServ など全く別の用途に使われたりもする。
        http://x68000.q-e-d.net/~68user/rfc/?key=2474&target=title
- OS が TOS を参照するかどうかは怪しいのでは? (ルータならともかく)
- TOS で QoS をやりたいならイントラ内で使うこと。ルータは TOS 対応の
    ものを揃えるべき。
- 少なくともインターネット経由では、ピアまで TOS がそのまま流れる
    保障は全くない。
- Arcstar のように、TOS を考慮するとうたっているサービスはある。
        http://www.ntt-vpn.com/ip-vpn/faq/faq_02.html

というのがわたしの認識です。

No. 4524 # かつや 2006/02/19 (日) 15:19:55
Wic-PC上で起動した際Teratermウィンドウがタスク上に隠れて
しまいタスクトレイ上にある該当画面を選択しなければ画面上
に表示されません。設定で画面がフォアに表示されるように
する為の設定方法をご教示下さい。

No. 4525 # 68user 2006/02/19 (日) 23:35:20
>>4524 かつや
http://search.vector.co.jp/search?query=%8D%C5%91O%96%CA などのツールを
インストールするのがよいのではないでしょうか。

No. 4526 # mkt 2006/02/20 (月) 04:05:17
>>4516 68user
いろいろありがとうございます。お手数をおかけしました。

> " の解決のため、10年近くつぎはぎでやってきた汚い部分を全面的に見直し
> たため、もしかしたら UNIX の部屋の検索部分にエンバグしている可能性が
> あります。怪しい挙動を見つけられた方は教えていただけると幸いです。

自分 1 人暴走している感じで恐縮ですが、いろいろ試してしまいました。

全角記号を検索したときの挙動について。
- 半角に変換して検索されている*ものもある*。
    (「@」「〜」「:」などは半角に変換されている)
- ヒットしなかったときのキーワードの表示が文字化けしている。(*1)
    (「!」「;」「¥」など多数)
- 関係ない結果が表示される。(*2)
    (「”」「’」「|」など)

半角記号で全文検索したときの挙動について。
- 「ある」はずなのに「ヒットしませんでした。」と言われる。
    (「"」→ \&quot\; がないと言われる、「'」→ \&apos\; がないと言われる、など)
- ヒット数表示の次の、リストの先頭に空の項目が入って、
    unix-term-dic.html や pregmemo.html などの各検索対象ファイルから
    関係ない部分(検索キーワードによって範囲は異なるが google_ad 関連スクリプトの
    <!-- の後から 先頭項目のあたり?)まで拾ってきてしまっている。
    (「!」「=」「:」「@(=@)」「*」など多数)

あと、「+」を検索しようとすると「500 Internal Server Error」に
なりますね。何も入力しなかった場合とかもですが。

---
(*1)(*2)
記号ばかり試していましたが、普通に言葉を検索しても何か変です。
「あいうえお」→ 1 件ヒットしました。(これは実際存在したので問題ない)
「かきくけこ」→ ヒットしませんでした。(が、キーワード文字化け)
「鶴」→ ヒットしませんでした。(が、キーワード文字化け)
「亀」→ 3 件ヒットしました。(が、どれも関係ないものばかり)
という感じで。


…もっとスマートに分類できたらいいんですが、収拾つかなくなってしまいました。
ごちゃごちゃに突っつくだけ突っついて申し訳ありません。

No. 4527 # mkt 2006/02/20 (月) 04:16:22
>>4526 mkt
言わずもがなですが、
    pregmemo.html は prgmemo.html の typo
です。失礼しました。

No. 4528 # 68user 2006/02/21 (火) 02:26:55
>>4526 mkt
ずいぶんヌルい修正をしてしまい、お恥ずかしい限りです、

> - ヒットしなかったときのキーワードの表示が文字化けしている。(*1)
> (「!」「;」「¥」など多数)
正規表現で検索しているため、入力された文字列は quotemeta している
のですが、quotemeta すると EUC-JP の 0x80 以降も quote されてしまい、
その結果化けていました。これまでは quotemeta した後に
    s/\\([\x80-\xff])/$1/g;
で元に戻していたのですが、前回の修正時になぜか戻す必要はないと判断
して、上記の s/// を削除していました。

> - 関係ない結果が表示される。(*2)
> (「”」「’」「|」など)
全角->半角変換が甘くて、" ' | などはそもそも半角に置換していません。
調査していないので想像ですが、EUC-JP の 2バイト目 + 後続バイトに
マッチしてしまったのではないかと思います。

> <!-- の後から 先頭項目のあたり?)まで拾ってきてしまっている。
> (「!」「=」「:」「@(=@)」「*」など多数)
全文検索のテストが甘かったようです。

> あと、「+」を検索しようとすると「500 Internal Server Error」に
> なりますね。何も入力しなかった場合とかもですが。
空の場合は
    print "検索内容を指定してください。\n";
と表示するようにしていたのですが、前回の修正で Content-type ヘッダの
出力方法を変更したせいで、Content-type より前に
    検索内容を指定してください。
が出力され、エラーとなっているようです。

少しずつ直していきます。ご指摘ありがとうございました。

No. 4529 # hoge 2006/02/21 (火) 12:44:56
>>4524 かつや
Tera Term のショートカットのプロパティ中の
『実行時の大きさ』って項目はどうなっていますか?

No. 4530 # でたち 2006/02/27 (月) 02:12:36
Cシェルでシェル変数に代入された数値として
例えば0.12が入っている場合、その変数の数値を$で
参照する時に「0.12」としてではなく、
「.12」と出力させることはできますか?
ご教示頂けましたら幸いです。

No. 4531 # 68user 2006/02/27 (月) 12:00:12
>>4530 でたち
printf(1) で何とかならないかと思って試してみましたが、どうやら無理っぽいので
    echo ${var:s/0././}
でどうでしょうか。

No. 4532 # でたち 2006/02/27 (月) 18:15:08
>>4531 68user
echo ${var:s/0././}
を行ってみましたが Variable syntax表示で
受け付けて貰えませんでした。
ご返信頂きまして大変ありがとうございます。

Prev< No. 4501〜4535> Next  [最新発言に戻る] [過去ログ一覧]