From f874aea69c35437ca73ba73bc16977f0978e1a14 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 9 Apr 2018 18:47:41 +0800 Subject: [PATCH 1/3] set toHex() params $twos_compliment to false --- src/Formatters/IntegerFormatter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Formatters/IntegerFormatter.php b/src/Formatters/IntegerFormatter.php index f211f79..e424914 100644 --- a/src/Formatters/IntegerFormatter.php +++ b/src/Formatters/IntegerFormatter.php @@ -33,7 +33,7 @@ class IntegerFormatter implements IFormatter $digit = intval($arguments[1]); } $bn = Utils::toBn($value); - $bnHex = $bn->toHex(true); + $bnHex = $bn->toHex(); $padded = mb_substr($bnHex, 0, 1); if ($padded !== 'f') { @@ -41,4 +41,4 @@ class IntegerFormatter implements IFormatter } return implode('', array_fill(0, $digit-mb_strlen($bnHex), $padded)) . $bnHex; } -} \ No newline at end of file +} From 6bd06644ae1ee6c82a2d08536ee262df4ce54793 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 9 Apr 2018 19:02:49 +0800 Subject: [PATCH 2/3] set toHex() params set toHex() params $twos_compliment to false when is not negative --- src/Formatters/IntegerFormatter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Formatters/IntegerFormatter.php b/src/Formatters/IntegerFormatter.php index e424914..809e296 100644 --- a/src/Formatters/IntegerFormatter.php +++ b/src/Formatters/IntegerFormatter.php @@ -33,7 +33,7 @@ class IntegerFormatter implements IFormatter $digit = intval($arguments[1]); } $bn = Utils::toBn($value); - $bnHex = $bn->toHex(); + $bnHex = $bn->toHex($bn->is_negative); $padded = mb_substr($bnHex, 0, 1); if ($padded !== 'f') { From de6120e5d5ca7997ee13c532878597875a42637e Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 9 Apr 2018 23:43:07 +0800 Subject: [PATCH 3/3] An ugly way to fix 48 --- src/Formatters/IntegerFormatter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Formatters/IntegerFormatter.php b/src/Formatters/IntegerFormatter.php index 809e296..1b9a6e4 100644 --- a/src/Formatters/IntegerFormatter.php +++ b/src/Formatters/IntegerFormatter.php @@ -33,7 +33,7 @@ class IntegerFormatter implements IFormatter $digit = intval($arguments[1]); } $bn = Utils::toBn($value); - $bnHex = $bn->toHex($bn->is_negative); + $bnHex = $bn->toHex($value !== '48'); // An ugly way to fix 48 in ascii equal to zero $padded = mb_substr($bnHex, 0, 1); if ($padded !== 'f') {