diff options
author | Jonas Schnelli <jonas.schnelli@include7.ch> | 2015-05-02 12:53:35 +0200 |
---|---|---|
committer | Jonas Schnelli <jonas.schnelli@include7.ch> | 2015-05-18 15:25:45 +0200 |
commit | 64937fe51acc269fc96b784fc97bd4cfe3c1d072 (patch) | |
tree | e665ff0ccf03aa88847d9ecbfb9fb5f6ef6bbca8 /qa/rpc-tests/bignum.py | |
parent | 26e08a16a6fb64b535d10f5d459183092deefa50 (diff) |
[QA] restructure rpc tests directory
* move non-test classes to subdir `test-framework`
Diffstat (limited to 'qa/rpc-tests/bignum.py')
-rw-r--r-- | qa/rpc-tests/bignum.py | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/qa/rpc-tests/bignum.py b/qa/rpc-tests/bignum.py deleted file mode 100644 index b0c58ccd47..0000000000 --- a/qa/rpc-tests/bignum.py +++ /dev/null @@ -1,102 +0,0 @@ -# -# -# bignum.py -# -# This file is copied from python-bitcoinlib. -# -# Distributed under the MIT/X11 software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. -# - -"""Bignum routines""" - -from __future__ import absolute_import, division, print_function, unicode_literals - -import struct - - -# generic big endian MPI format - -def bn_bytes(v, have_ext=False): - ext = 0 - if have_ext: - ext = 1 - return ((v.bit_length()+7)//8) + ext - -def bn2bin(v): - s = bytearray() - i = bn_bytes(v) - while i > 0: - s.append((v >> ((i-1) * 8)) & 0xff) - i -= 1 - return s - -def bin2bn(s): - l = 0 - for ch in s: - l = (l << 8) | ch - return l - -def bn2mpi(v): - have_ext = False - if v.bit_length() > 0: - have_ext = (v.bit_length() & 0x07) == 0 - - neg = False - if v < 0: - neg = True - v = -v - - s = struct.pack(b">I", bn_bytes(v, have_ext)) - ext = bytearray() - if have_ext: - ext.append(0) - v_bin = bn2bin(v) - if neg: - if have_ext: - ext[0] |= 0x80 - else: - v_bin[0] |= 0x80 - return s + ext + v_bin - -def mpi2bn(s): - if len(s) < 4: - return None - s_size = bytes(s[:4]) - v_len = struct.unpack(b">I", s_size)[0] - if len(s) != (v_len + 4): - return None - if v_len == 0: - return 0 - - v_str = bytearray(s[4:]) - neg = False - i = v_str[0] - if i & 0x80: - neg = True - i &= ~0x80 - v_str[0] = i - - v = bin2bn(v_str) - - if neg: - return -v - return v - -# bitcoin-specific little endian format, with implicit size -def mpi2vch(s): - r = s[4:] # strip size - r = r[::-1] # reverse string, converting BE->LE - return r - -def bn2vch(v): - return bytes(mpi2vch(bn2mpi(v))) - -def vch2mpi(s): - r = struct.pack(b">I", len(s)) # size - r += s[::-1] # reverse string, converting LE->BE - return r - -def vch2bn(s): - return mpi2bn(vch2mpi(s)) - |