function _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

Code

function _openid_dh_long_to_binary($long) {
    $cmp = _openid_math_cmp($long, 0);
    if ($cmp < 0) {
        return FALSE;
    }
    if ($cmp == 0) {
        return "\x00";
    }
    $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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.