Blowfish関数のバグについて

question:1182956412

PHPのBlowfish関数にあったバグについて、Crypt_Blowfish-1.0.1.tgzを調べた結果のメモ。

_decihper, _encipher関数でint型整数同士の加算を行った結果に対してビット演算をかけている。この時、加算時の結果がint型の範囲になかった場合は、加算の結果は自動的にfloat型にキャストされ、ビット演算時に再度int型にキャストされる。int型の範囲にない整数をint型へのキャストした時の動作は未定義だが、大多数のPHPがとる挙動に依存してしまっている。

多分。