|
akuroと申します。 MACの改行コード(CR)の扱いについておうかがしたいことがございます。 RedHat8.0上コマンドラインより、 vi lunux.txt ------------- aiueo kakikukeko sasisuseso というファイルを作成し、これの改行コードを¥r→¥nに変換しました。 perl -pe 's/¥n/¥r/' linux.txt > mac.txt このファイルをWindows2000クライアントPCにDLしメモ帳で表示したところ。 -------- aiueo■kakikukeko■sasisuseso■ (実際は■は半分くらいの大きさです) となり、¥rが存在する事が確認できます。 自動で改行コードを認識するエディタで表示させると改行されて表示されます。 (サクラエディタ使用) この処理を、Vine2.6R4上で実行し、メモ帳、サクラエディタで見たところ ------- aiueokakikukekosasisuseso 両エディタでみてもこのようになっておりました。 ただ、¥r自体は存在するようなのですが、うまく反映されないのです。 (この結果はFreeBSD5.2でも同様でした。) 色々とこの現象について調べてはいるのですが、原因不明です。 どなたかおわかりの方がいらっしゃいましたらよろしくお願いします。 それと、情報が足りない点がありましたらご指摘お願いいたします。 |
|
>>3983 田 こちらの環境ではいずれも正常に表示されたので、解決方法は わかりませんでした。少しずつ出力を削り、どこがまずいのか 調べましょう。 もし他の掲示板で質問する場合は、これまでに述べた環境に 加え、テーブルのどの部分がどういうふうに崩れるのかを 書くとよいでしょう。 >>3984 akuro まずは問題が発生している箇所を切り分けましょう。 perl 実行後に od -cx などでファイルの内容を確認しましょう。 \r になっているなら、Windows 側かファイル転送時の問題です。 \r になっていないなら、Linux 側の問題です。 |
|
>>3985 68user 返信ありがとうございます。 早速ファイルを確認してみましたところ、 (Vine,redhat8.0での確認) →FREEBSDの方は今起動できないため後でテストしてみます。 0000000 a i u e o \r k a k i k u k e k o 6961 6575 0d6f 616b 696b 756b 656b 6f6b 0000020 \r s a s i s u s e s o \r 730d 7361 7369 7375 7365 0d6f 0000034 と同じ結果となり、¥rは存在する事が判明しました。 という事は、”Windows 側かファイル転送時”の問題のようです。 ファイルの取得方法はRedHatもVineもWinSCPを使用して受けとりました。 受け取ったクライアントPCは同じなので原因は転送時の気がします。 となると、SSHの設定かもしれないです。 まだ、原因はわかりませんが引き続き調査してみます。 |
|
>>3986 akuro 原因は、WinSCPでの転送中にファイルが加工されていたためでした。 一度ローカルにDLした後に、再度サーバーへUPしたところ ファイルのダンプデータが異なりました(ファイルサイズも)。 0000000 a i u e o \r k a k i k u k e k o 6961 6575 0d6f 616b 696b 756b 656b 6f6b 0000020 \r s a s i s u s e s o \r 730d 7361 7369 7375 7365 0d6f ↓DL、UP後 0000000 a i u e o k a k i k u k e k o s 6961 6575 6b6f 6b61 6b69 6b75 6b65 736f 0000020 a s i s u s e s o \0 7361 7369 7375 7365 006f 0000031 sshd_configを調べてみても、転送モードらしきものは見つかりませんでした。 なにかよい方法はありませんでしょうか。 (FTPでバイナリモードにするしかないのでしょうか) FTPを使用してバイナリ転送したところ、問題なく転送できました。 |
|
>>3987 akuro WinSCP は知りませんが、 http://itc.sfc.keio.ac.jp/ml/ の「2-6. 転送モードで[テキスト(T)] を選択します」という設定画面で モード切替を行なえるように見えます。 > sshd_configを調べてみても、転送モードらしきものは見つかりませんでした。 わたしの知る限り、UNIX 的な ssh・scp は改行コード置換は行ないません。 WinSCP 独自のおせっかいな機能でしょう。 |
|
>>>3987 akuroと申します。なんども申し訳ありません。 先ほどは、改行コードを¥n→¥r変換しましたが。 ¥nのままでもファイルに異常が生じるかテストしてみました所、 ¥nの場合は問題なく転送できました。 |
|
>>3988 68user 返信ありがとうございます。akuroです。 問題解決いたしました。 ご指摘いただいたWinSCPの転送をバイナリにしたところ 問題なく転送できました。 ありがとうございました。 |
|
sugimotoと申します。 OpenSSLとRSA暗号を調べていてここに辿りつきました。 あるユーザ様とCGIを介してデータ通信を行おうとしているのですが、ユーザ 様の指定で、データはRFC2313に準拠したRSA暗号化して送るという事になって ます。 暗号化/復号については68user様のネットワークプログラミングの基礎を参考 に作れそうなのですが、唯一解決できない問題がありまして、ここに質問して おります。 【問題点】 ユーザ様から提示された仕様には暗号化キー/復号キーがそれぞれ1つしか 無い。 RSAはモジュラスと私有指数,公開指数で暗号化/復号を行えるという理解な のですが、ユーザ様の仕様ではモジュラスに該当する仕様が無いのです。 RSAにおいて、このような事は可能なのでしょうか? 例えば、opessl genrsaコマンドで作成したRSAキーなら、関数を使えば指数 とモジュラスに分割できるよ。など情報がありましたら教えて下さい。 ※ユーザ様にも問い合わせ中なのですが、レスポンスの問題がありまして、 こちらにも質問した次第です。 よろしくお願いいたします。 |
|
>>3991 sugimoto > RSAはモジュラスと私有指数,公開指数で暗号化/復号を行えるという理解な > のですが そのとおりです。 > ユーザ様の仕様ではモジュラスに該当する仕様が無いのです。 これは定義の問題ではないでしょうか? 仕様にある「暗号化キー」は、 実は「モジュラスと公開指数」を意味する、ということはないですか? # 「暗号化キー/復号キー」が具体的に何を指すのかよくわからない # ので何ともいえないのですが。 > 例えば、opessl genrsaコマンドで作成したRSAキーなら、関数を使えば > 指数とモジュラスに分割できるよ。など情報がありましたら教えて下さい。 genrsa で出力されるデータには、モジュラス・公開指数・非公開指数全てが 含まれていますので、可能です (openssl genrsa で生成したデータを読み込み、 openssl rsa -pubout で公開鍵を出力できるわけなので)。 試してませんが、genrsa で生成した PEM ファイルを http://www.openssl.org/docs/crypto/pem.html などで読み込み、RSA 構造体を参照すればよいのではないでしょうか。 |
|
>>3992 68user 素早い回答どうも有難うございます。> 68User様 > > ユーザ様の仕様ではモジュラスに該当する仕様が無いのです。 > これは定義の問題ではないでしょうか? 仕様にある「暗号化キー」は、 > 実は「モジュラスと公開指数」を意味する、ということはないですか? ユーザからの回答として、上記が来る事を心待ちにしている所です。 PEMファイルからモジュラスを抜き出す処理については、ユーザからの回 答を待ってからにしようと思っておりますが、必要になった場合は頑張って みます。この処理を行いましたらまた報告します。 |
|
>>3993 sugimoto sugimotoです。 結局PEMファイルから秘密指数/公開指数とモジュラスを抜き出す事にしました。 プライベート鍵ファイルからの読み込みは PEM_read_RSAPrivateKey()という関数を利用する事で上手く行ったのですが、 パブリックキーの読み込みに失敗している状態です。 以下が読み込みプログラム RSA *ReadPublicKey(char *keyfile) { FILE *fp = fopen (keyfile, "r"); RSA *pkey; if (!fp) return NULL; pkey = PEM_read_RSAPublicKey(fp,NULL,NULL,NULL); fclose (fp); if (pkey == NULL) ERR_print_errors_fp (stderr); return pkey; } この関数を実行すると、以下のエラーが出てしまいます。 === ここから === 5563:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:669:Expect ing: RSA PUBLIC KEY Error: can't load public key === ここまで === 渡しているファイルは openssl rsa -in private.key -pubout -out public.key で作成した、public.keyになります。 ちなみに、private.keyの読み込みは上記関数のPEM_read_RSAPublicKeyを PEM_read_RSAPrivateKeyに変えた物で、問題無く動作します。 どなたか、private.keyの読み込みを行った方が居ましたら、助言をお願い いたします。 |
|
>>3994 sugimoto 今実行環境がないのでわかりませんが、とりあえず気になったところだけ。 > プライベート鍵ファイルからの読み込みは > PEM_read_RSAPrivateKey()という関数を利用する事で上手く行ったのですが、 これで RSA 構造体に「秘密指数/公開指数とモジュラス」がセットされていませんか? あと、目的がよくわからないのですが、PEM ファイルは誰が作るのですか? (自分? 相手?) なぜ「秘密指数/公開指数とモジュラス」を抜き出す必要があるのでしょうか? |
|
>>3995 68user > > プライベート鍵ファイルからの読み込みは > > PEM_read_RSAPrivateKey()という関数を利用する事で上手く行ったのですが、 > これで RSA 構造体に「秘密指数/公開指数とモジュラス」がセットされていませんか? はい。セットされます。 動作の確認のため、パブリック鍵ファイルも読み込みたかったのです。 > あと、目的がよくわからないのですが、PEM ファイルは誰が作るのですか? (自分? 相手?) PEMは自分で作成して、一方を相手に渡します。 > なぜ「秘密指数/公開指数とモジュラス」を抜き出す必要があるのでしょうか? PEMファイルの鍵を使って暗号化と復号を行いたいからです。 で、当初の問題であったパブリック鍵の読み込みですが、 PEM_read_RSA_PUBKEY() という関数を使ったところ上手く行きました。 色々ご助言いただき有難うございました。 |
|
>>3996 sugimoto > PEMファイルの鍵を使って暗号化と復号を行いたいからです。 PEM ファイルをロードしたら RSA 構造体が生成されるわけですから、 それを使って OpenSSL の関数で RFC2313 (PKCS#1) なデータを生成 するのはダメなのですか? …と質問しようかと思ったのですが、おそらく「そういう仕様である」が 答えなような気がしますのでやめておきます。 |
|
>>3997 68user あー、公開指数とモジュラスだけ (独自フォーマットで 相手側に送りたい、 という意図かな。 |
|
>>3998 68user やりたい事を上手く伝える事ができないくて、すみません。 送信者は平文をPEM形式のパブリック鍵で暗号化し、 受信者はPEM形式のプライベート鍵で復号する。 という事を実現したかっただけなのです。 暗号化/復号の際にはPEM形式ファイル内の指数とモジュラスを抜き出す 必要があって・・・という話です。 と、ここまで書いて思ったのですが、もしかしてPEM形式の鍵をそのまま 使ってRSA暗号化する関数が存在するのでしょうか? とすれば、何て無駄な事をしているんだ・・・。という感じです。 |
|
はじめまして。 「HTTPクライアントを作ってみよう」に関して質問させてください。 一般的なHPなら「HTTPクライアントを作ってみよう(2)」のソースで、指定されたURLのhtmlファイル のソースを読み込むことができますが、Operaブラウザでオートリダイレクトを有効にしていない場合 に表示されないようなURLを指定すると <head><title>Object moved</title></head> <body><h1>Object Moved</h1>This object may be found <a HREF="">here</a>.</body> のようなhtmlソースを拾ってきてしまいます。 リダイレクト先のhtmlソースを拾ってくるようにしたいのですが、どのようにすればいいのでしょうか。 よろしくお願いします。 |
|
>>3999 sugimoto > 送信者は平文をPEM形式のパブリック鍵で暗号化し、 まずこの表現が微妙に変です。PEM はフォーマットのひとつでしかありません。 「送信者は PEM形式で保存されている公開鍵を使って暗号化し」ならわかります。 # わかっている人が書いた文章であればあまり気になりませんが、今回は # どうも理解があやしいのではないかという気がします。 PEM 形式でファイルに保存されている鍵を使って RSA で暗号化するのであれば、 PEM_read_RSAPrivateKey でファイルから鍵を読み込み、RSA 構造体に適切な データをセットして、 http://X68000.q-e-d.net/~68user/net/rsa-1.html のように RSA_private_encrypt を使えばすみます。モジュラスなどを参照する 必要はありません。 コマンドラインから行うなら openssl rsautl -encrypt でも同じ結果になると 思われます。 なお、PKCS#1 では鍵が k オクテットのとき、最大でも k-11 オクテットのデータ しか暗号化できませんが、それはよいのですか? >>4000 nira > リダイレクト先のhtmlソースを拾ってくるようにしたいのですが Location ヘッダを見て、再度リクエストを送る必要があります。 http://X68000.q-e-d.net/~68user/net/http-4.html#3 をどうぞ。 |
|
はじめまして!! おしえてください。 UNIX(HP)のサーバー間でファイルを大量コピーする作業があります。 rcp -pr コマンドを使用したところ、ログインしたユーザ名で全てのファイルが移動されて しまいます。 例)user1 file0001 コピー後⇒ user1 file0001 root file0002 user1 file0002 所有者を変更せずにコピーできる方法があれば どなたかご教授願います。 宜しくお願いします<m(__)m> |
|
>>4002 アンドロメダ root で実行してもダメですか? もしダメなら tar で固めてそれを rcp し、 tar xfp で展開するとよいでしょう。 |
|
>>4002 アンドロメダ rcpの-pオプションはパーミッションは保持されますが ファイルのオーナーは変わってしまいます。 (Solaris、AIXでも同様) 大ざっぱですが、こんな感じで... tar cfp - ./from_dir | rsh to_server "cd to_dir; tar xfp -" |
|
みなさんアドバイスありがとうございました。 tarでまとめてリモートコピーする方法でテストしたところ うまくできました。 ありがとうございました。\(^O^)/ |
|
はじめまして、くろと申します。 ここのサイトのネットワークプログラミング[ SSL/TLS でアクセスしてみよう (1) ]の サンプルを元に、https接続で、メソッドをGETではなくPOSTで、データを送信したところ HTTPステータス[400 Bad Request]が戻ってきてしまいます。 リクエストのヘッダーがおかしいのかな?と思い、下記のようにしたのですが、 POST プログラム名 HTTP/1.0 User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.0) Content-Length: 270 Content-type: text/xml; charset=utf-8 上手くいきませんでした。(改行コードは、\r\nです) このステータスが戻ってくる原因として、他にどんなことが考えられますでしょうか? 正直、今の私にはここまで限界で・・・ どなたかご存知の方がいらっしゃいましたら、教えていただけませんでしょうか? 宜しくお願い致します。 |