|
>>4479 68user >わたくしのまわりには Solaris がないので試せませんが、これは何が原因で >最終行が表示されないのでしょうか? パイプを使用した場合と同様、サブシェルで動作する事が原因のようです。 Solaris8のshで確認した所、forkしてからサブシェルの中でファイルを オープンしていました。 (ksh/bash/zshはサブシェルで動作しないので問題なし。) |
|
>>4480 zsh >パイプを使用した場合と同様、サブシェルで動作する事が原因のようです。 >Solaris8のshで確認した所、forkしてからサブシェルの中でファイルを >オープンしていました。 サブシェルで動作するとは、子プロセスでシェル起動しているというこ ですか。 whileの前に exec 0<file.txt を入れないと、最終行が表示されないということですか。 |
|
>>4480 zsh あー、なるほど。 >>4467 68user > 補足。Solaris の sh では >> while read -r line; do >> done < file.txt > でもダメなようですね のことですね。別件かと勘違いしておりました。 |
|
>>4481 お >サブシェルで動作するとは、子プロセスでシェル起動しているというこ >ですか。 その通りです。 >whileの前に >exec 0<file.txt >を入れないと、最終行が表示されないということですか。 サブシェル(while)内で use_buf=1 としても、親シェルには引き継がれないので 最後の if 文が必ず偽になります。 よって、最終行(最終行が半角スペースで始まる場合には最終 2 行)が 表示されないと思います。 |
|
>>4483 zsh 試して見ました。 ファイルの最後が空行(最終行が改行コードで終了)の場合、 whileの前に exec 0<file.txt を入れないくても、最終行が表示されました。 最終行の終わりが、改行コードではなく、ファイルの終端(EOF)がある場合、 catコマンドでファイルを表示した時、最終行の後ろに、プロンプトが来る ファイルをやると、最終行が表示されません。 whileの前に exec 0<file.txt を入れた場合でも。 |
|
>>4485 お >ファイルの最後が空行(最終行が改行コードで終了)の場合、 >whileの前に >exec 0<file.txt >を入れないくても、最終行が表示されました。 試してみましたが、最終行(空行)は表示されませんでした。 Solaris 標準の sh ですよね? >最終行の終わりが、改行コードではなく、ファイルの終端(EOF)がある場合、 >catコマンドでファイルを表示した時、最終行の後ろに、プロンプトが来る >ファイルをやると、最終行が表示されません。 それは read コマンドが読込めないので、仕方がないというか そこまでやるならシェルスクリプトにこだわらない方が良いかと。 |
|
GD::Graph で遊んでみました。 http://x68000.q-e-d.net/~68user/webcgi/gd-graph.html http://x68000.q-e-d.net/~68user/webcgi/sample/perl/graph-maker.cgi |
|
はじめまして。 おじゃまいたします。 早速ですが Opensslライブラリを使用して復号処理を実装したいと考えておりまして RSA鍵交換の場合は、おおまかに分かりましたが DH鍵交換の実装方法がなかなか調べても分からない状況です。 おそらくRSAとは使用するI/Fが異なるのではないかと考えています。 ご存知の方いらっしゃいましたら ご教授頂けないでしょうか。 RSA鍵交換の場合は下記のような感じです(秘密鍵は知っている前提) (1) pre_master_secretを取得する RSA_private_decrypt()を呼び出す (2) 上記のpre_master_secretとclient_randomとserver_random値より master_secretを生成 (3) データを復号する(master_secretが分かれば復号できる) EVP_Cipher()を呼び出す |
|
はじめまして。 おじゃまいたします。 早速ですが Opensslライブラリを使用して復号処理を実装したいと考えておりまして RSA鍵交換の場合は、おおまかに分かりましたが DH鍵交換の実装方法がなかなか調べても分からない状況です。 おそらくRSAとは使用するI/Fが異なるのではないかと考えています。 ご存知の方いらっしゃいましたら ご教授頂けないでしょうか。 RSA鍵交換の場合は下記のような感じです(秘密鍵は知っている前提) (1) pre_master_secretを取得する RSA_private_decrypt()を呼び出す (2) 上記のpre_master_secretとclient_randomとserver_random値より master_secretを生成 (3) データを復号する(master_secretが分かれば復号できる) EVP_Cipher()を呼び出す |
|
>>4488 take >>4489 take 2度書きしてしまいました。 申し訳ありません。 |
|
>>4489 take > DH鍵交換の実装方法がなかなか調べても分からない状況です。 わたしにもさっぱりわかりませんが、以下の URL はチェック済ですか? http://www.openssl.org/docs/crypto/dh.html http://matagi.sakura.ne.jp/mt/archives/2005/03/openssldh.html |
|
>>4491 68user >わたしにもさっぱりわかりませんが、以下の URL はチェック済ですか? > http://www.openssl.org/docs/crypto/dh.html > http://matagi.sakura.ne.jp/mt/archives/2005/03/openssldh.html お返事ありがとうございます。 DH法用の関数はこれなんですね。 お教え頂いた情報を参考に、更に調べてまいります。 |
|
シェルスクリプトで、 ファイルからフィールド1を読み込み、前後にシングルクォーテーション「'」を 付けて、区切りの1行にしたいのですが、「'」を上手く付けることができません。 「'」の使い方が不正とかで怒られます。 #!/bin/csh nawk -F"," ' { \ if (FNR==1) printf("\'%s\'", $1); \ else printf(",\'%s\'", $1) \ }' file.txt 一度、ダブルクォーテーション「"」にしてからsedで置換しよとしたのですが、 sedでも「'」の使い方が不正とかで怒られます。 nawk -F"," ' { \\ if (FNR==1) printf("\"%s\"", $1); \\ else printf(",\"%s\"", $1) \\ }' file.txt | sed 's/"/\'/g' または、 set a = `nawk -F"," ' { \\ if (FNR==1) printf("\"%s\"", $1); \\ else printf(",\"%s\"", $1) \\ }' file.txt` echo $a | sed 's/"/\'/g' どのようにすればよいのですか。 OSは、Solairs8 |
|
>>4493 お 参照するファイルについて書いていませんでした。 # cat file.txt Tokyo, Oosaka, Nagoya, Kyoto, Kyusyu, |
|
>>4493 お csh は馬鹿なので、シングルクォートの中にシングルクォートを書くことはできません。 つまり、 echo '\'' はエラーです (sh も同様)。同様に echo "\"" もエラーになります (sh ならこっちは OK)。 で、csh には (sh も) echo "文字列1""文字列2""文字列3" echo "文字列1"文字列2"文字列3" echo '文字列1''文字列2''文字列3' echo '文字列1'文字列2'文字列3' のいずれも、 echo "文字列1文字列2文字列3" と (基本的には) 同じ、という性質があります。 よって、csh で 'abcdef' を出力したい場合は、 echo "'"abcdef"'" echo "'""abcdef""'" などとします。 シェルのクォートは「ネストさせない」が鉄則です。 |
|
>> 4495 無理なのですか。 一度、ファイルから取得したものループでechoコマンドを 使いながら編集するということですね。 #!/bin/csh set ALL="Tokyo Oosaka Nagoya Kyoto" @ i = 1 foreach EACH ($ALL) if ($i == 1) then set ALLS=`echo "'"$EACH"'"` else set ALLS=`echo $ALLS",'"$EACH"'"` endif @ i++ end echo $ALLS |
|
>>4496 お 確認していませんが、awk のプログラム部分を別ファイルにして -f オプションで指定しても出来ると思います。 (この場合はシングルクォートのエスケープは不要です。) |
|
>>4496 お > 無理なのですか。 いいえ。 awk -F"," '{if (FNR==1){printf "'"'"'%s'"'"'",$1}else{printf ",'"'"'%s'"'"'",$1}}'<file.txt |
|
>>4497 zsh >>4498 68user zshさん、68userさん ありがとうございます。 出来ました。 「'」を「"」で囲って連続して付けることは試してはいたのですが、 私が試していたのとは違っていました。 それよりも、「'%s'」とするのには気が付きませんでした。 常に「"%s"」としていました。 ただ、 awkで行うと、 ,'Tokyo','Oosaka','Nagoya','Kyoto','Kyusyu' と1行目に読み込んだものにもカンマ「,」がついてしまします。 nawkで行うと 'Tokyo','Oosaka','Nagoya','Kyoto','Kyusyu' となります。 何が違いとかあるのでしょうか。 |
|
>>4499 お Solaris の awk では FNR という変数はありません。 NR に変更すれば動作すると思います。 (NR と FNR では、複数ファイルを入力とした時に値が異なります。) |
|
はじめまして、漠然とした質問なのですが、 SSLv3のハンドシェイク処理の部分を実際に (Cで)実現する方法を知っている方、もしくは 何か参考になるものがあれば教えてください。 |
|
環境は、vine linux 、 openssl-0.9.7d-0vl3.2 です。 |
|
はじめましてe。いつもいろいろと参考にさせてもらってます。 いろいろ試したのですが、わからないので質問させて下さい。 http://tomorrows-wind.at.webry.info/200507/article_21.html ↑ちょうど私の書いたプログラムとほぼ同じだったので ちょっと勝手に拝借したんですが、このソース 私のやってる環境では、エラーがでるんですよね。 エラーが出るのは、最後のRSA_private_decrypt関数です。 これは私だけなんでしょうか?どなたか試していただけませんか? 鍵に関しては、コマンドラインから暗号化,復号化に成功しているので 問題ないと思われます。 お願いします。 実行環境:vine linux OpenSSL 0.9.7d 17 Mar 2004 |
|
>>4503 esam dectxt = malloc(RSA_size(rsapriv)); を、 dectxt = calloc(1, RSA_size(rsapriv)); と書き換えることでエラーが消えることを確認しました。 (環境: Vine Linux 3.2, OpenSSL 0.9.7d 0vl3.2) |
|
>>4503 esam >>4504 は無視してください。 > http://tomorrows-wind.at.webry.info/200507/article_21.html の plaintxt = malloc(sizeof(char)*7); strcpy(plaintxt, "abcdefg"); というのがおかしいですね。ここを直せばうまく動いた気がします。 |
|
>>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), ... としなければいけません。 |