Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 48 lines 2.3 kB view raw
1from Crypt import CryptBitcoin 2 3 4class TestCryptBitcoin: 5 def testSign(self, crypt_bitcoin_lib): 6 privatekey = "5K9S6dVpufGnroRgFrT6wsKiz2mJRYsC73eWDmajaHserAp3F1C" 7 privatekey_bad = "5Jbm9rrusXyApAoM8YoM4Rja337zMMoBUMRJ1uijiguU2aZRnwC" 8 9 # Get address by privatekey 10 address = crypt_bitcoin_lib.privatekeyToAddress(privatekey) 11 assert address == "1MpDMxFeDUkiHohxx9tbGLeEGEuR4ZNsJz" 12 13 address_bad = crypt_bitcoin_lib.privatekeyToAddress(privatekey_bad) 14 assert address_bad != "1MpDMxFeDUkiHohxx9tbGLeEGEuR4ZNsJz" 15 16 # Text signing 17 data_len_list = list(range(0, 300, 10)) 18 data_len_list += [1024, 2048, 1024 * 128, 1024 * 1024, 1024 * 2048] 19 for data_len in data_len_list: 20 data = data_len * "!" 21 sign = crypt_bitcoin_lib.sign(data, privatekey) 22 23 assert crypt_bitcoin_lib.verify(data, address, sign) 24 assert not crypt_bitcoin_lib.verify("invalid" + data, address, sign) 25 26 # Signed by bad privatekey 27 sign_bad = crypt_bitcoin_lib.sign("hello", privatekey_bad) 28 assert not crypt_bitcoin_lib.verify("hello", address, sign_bad) 29 30 def testVerify(self, crypt_bitcoin_lib): 31 sign_uncompressed = b'G6YkcFTuwKMVMHI2yycGQIFGbCZVNsZEZvSlOhKpHUt/BlADY94egmDAWdlrbbFrP9wH4aKcEfbLO8sa6f63VU0=' 32 assert crypt_bitcoin_lib.verify("1NQUem2M4cAqWua6BVFBADtcSP55P4QobM#web/gitcenter", "19Bir5zRm1yo4pw9uuxQL8xwf9b7jqMpR", sign_uncompressed) 33 34 sign_compressed = b'H6YkcFTuwKMVMHI2yycGQIFGbCZVNsZEZvSlOhKpHUt/BlADY94egmDAWdlrbbFrP9wH4aKcEfbLO8sa6f63VU0=' 35 assert crypt_bitcoin_lib.verify("1NQUem2M4cAqWua6BVFBADtcSP55P4QobM#web/gitcenter", "1KH5BdNnqxh2KRWMMT8wUXzUgz4vVQ4S8p", sign_compressed) 36 37 def testNewPrivatekey(self): 38 assert CryptBitcoin.newPrivatekey() != CryptBitcoin.newPrivatekey() 39 assert CryptBitcoin.privatekeyToAddress(CryptBitcoin.newPrivatekey()) 40 41 def testNewSeed(self): 42 assert CryptBitcoin.newSeed() != CryptBitcoin.newSeed() 43 assert CryptBitcoin.privatekeyToAddress( 44 CryptBitcoin.hdPrivatekey(CryptBitcoin.newSeed(), 0) 45 ) 46 assert CryptBitcoin.privatekeyToAddress( 47 CryptBitcoin.hdPrivatekey(CryptBitcoin.newSeed(), 2**256) 48 )