タグ

ブックマーク / www.gcd.org (2)

  • 仙石浩明の日記: SSL_pending

    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 のような暗号通信の場合、 送信は「垂れ流し」では済まず、ハンドシェークを行なう必要があるからだが、 この時、受信しようと思って

  • 仙石浩明の日記: x86_64 Linux などの 64bit 環境で MD5 を使うときの注意点

    MD5 (Message Digest Algorithm 5) は、 RFC 1321 でアルゴリズムが紹介されていて、 Appendix (付録) として C によるリファレンス実装が付属しているが、 その global.h に /* UINT4 defines a four byte word */ typedef unsigned long int UINT4; と書いてある。 すなわち 32bit 整数として UINT4 型を定義している。 x86_64 Linux を始め多くの 64bit Unix は LP64 すなわち long int (とポインタ) が 64bit な整数データモデルを採用している。 したがって UINT4 型の定義が 「unsigned long int」 のままで、 この MD5 リファレンス実装を使ってしまうと、 32bit であるべき UINT4

    khiker
    khiker 2010/03/01
    md5
  • 1