You are here

function _openid_dh_long_to_binary in Drupal 7

Same name and namespace in other branches
  1. 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;
}