SSL_pending をマニュアルで調べると、 SSL_pending - obtain number of readable bytes buffered in an SSL object SSL_pending() returns the number of bytes which are available inside ssl for immediate read. と書いてある。つまり OpenSSL ライブラリ内に受信可能データがある場合、 そのデータバイト数を返す関数である。 なぜこんな関数が必要かというと、 データを送信しようとして SSL_write を呼び出したときも、 TCP/IP レベルでは送信だけでなく、受信も行なわれるからだ。 SSL のような暗号通信の場合、 送信は「垂れ流し」では済まず、ハンドシェークを行なう必要があるからだが、 この時、受信しようと思って
TLS/SSL による通信をやりたい場合、OpenSSL を使えば簡単に実装することができる。 具体的には、recv(2), send(2) を直に発行するノリで、SSL_read(3), SSL_write(3) を使えばいい……と思っていたが、そうではないらしい。 ということで、調べたことをつらつら書いてみる。なお、以下は socket が non-blocking であることを想定して書いている。 それから、OpenSSL をそこまで読み込んだわけではないので、間違っているかもしれない。ツッコミ大歓迎! SSL_read での SSL_ERROR_WANT_READ. SSL_write での SSL_ERROR_WANT_WRITE データの送信を行おうとしたときに TCP/IP のバッファがいっぱいで積めない場合、send は EAGAIN でエラーする。 同様に SSL_wri
先日(03/29)、OpenSSL のメジャーバージョンアップ版 1.0.0 がリリースされました。 ちょうど1年ほど前から beta リリースが出ていましたが、ついに正式にリリースとなりました。 早速ソースコードをダウンロードして試してみたところ、気になるところを見つけたので記事にします。 サブジェクトのハッシュ OpenSSLには、証明書や CRL に含まれるサブジェクトや発行者名を 8文字で表現されるハッシュ値に変換する機能があります。 このハッシュ値は、OpenSSL のコマンドラインや SSL/TLS の実装として OpenSSL をリンクしているアプリケーションに対して、個々の CA証明書や CRL のファイルをディレクトリごと指定する際にファイル名として使用します。 $ openssl x509 -noout -hash -in hoge.pem このようなコマンドラインで、
I’ve been doing a little C programming lately and I have found that if you have a up to date distribution of linux there are a lot of libraries out there that make doing things you do in other languages like java easier. As I have time I’m going to post some examples of what I have found. The first here is how to base64 encode a chunk of memory using OpenSSL. [code lang=”c”] #include #include #inc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く