function _openid_dh_long_to_binary in Drupal 7
Same name and namespace in other branches
- 6 modules/openid/openid.inc \_openid_dh_long_to_binary()
4 calls to _openid_dh_long_to_binary()
- OpenIDTestCase::testConversion in modules/
openid/ openid.test - Test _openid_dh_XXX_to_XXX() functions.
- _openid_dh_long_to_base64 in modules/
openid/ openid.inc - _openid_dh_rand in modules/
openid/ openid.inc - _openid_dh_xorsecret in modules/
openid/ openid.inc
File
- modules/
openid/ openid.inc, line 490 - OpenID utility functions.
Code
function _openid_dh_long_to_binary($long) {
$cmp = _openid_math_cmp($long, 0);
if ($cmp < 0) {
return FALSE;
}
if ($cmp == 0) {
return "\0";
}
$bytes = array();
while (_openid_math_cmp($long, 0) > 0) {
array_unshift($bytes, _openid_math_mod($long, 256));
$long = _openid_math_div($long, pow(2, 8));
}
if ($bytes && $bytes[0] > 127) {
array_unshift($bytes, 0);
}
$string = '';
foreach ($bytes as $byte) {
$string .= pack('C', $byte);
}
return $string;
}