'(Unknown Contact)' 2010-07-27 01:16:33:
Доброй ночи, прошу прощения за беспокойство, на форуме не хочется регаться лишний раз.
Столкнулся с проблемой в WMXI v2
ф-я Sign в WMSigner неверно делает подпись, причем случаным образом, то нормально, то неверно. Путем ковыряния кода обнаружилось что функции _bcpowmod и _hex2dec неверно выдают результат, причем случайным образом. Вся пакость заключается в "необязательном" аргументе scale
string bcpowmod ( string x, string y, string modulus [, int scale] )
string bcadd ( string left_operand, string right_operand [, int scale])
Самое интересное что моя система выдает случайно то
15423166533046519798577845285101957313921080
то тоже самое, но с нулями
15423166533046519798577845285101957313921080.00000 0000
соответственно подпись уже не та
исправил путем добавления этого параметра равного 0
$decval = bcadd(bcmul(bcpow('16', $i, 0), $decvalues[$number[$i]]), $decval,0);
private function _bcpowmod($m, $e, $n) {
if (function_exists('bcpowmod')) { return bcpowmod($m, $e, $n,0); }
Надеюсь я не побеспокоил напрасно