def test_btsprivkey(self): self.assertEqual([ format( PrivateKey( "5HqUkGuo62BfcJU5vNhTXKJRXuUi9QSE6jp8C3uBJ2BVHtB8WSd"). address, "BTS"), format( PrivateKey( "5JWcdkhL3w4RkVPcZMdJsjos22yB5cSkPExerktvKnRNZR5gx1S"). address, "BTS"), format( PrivateKey( "5HvVz6XMx84aC5KaaBbwYrRLvWE46cH6zVnv4827SBPLorg76oq"). address, "BTS"), format( PrivateKey( "5Jete5oFNjjk3aUMkKuxgAXsp7ZyhgJbYNiNjHLvq5xzXkiqw7R"). address, "BTS"), format( PrivateKey( "5KDT58ksNsVKjYShG4Ls5ZtredybSxzmKec8juj7CojZj6LPRF7"). address, "BTS") ], [ "BTSFN9r6VYzBK8EKtMewfNbfiGCr56pHDBFi", "BTSdXrrTXimLb6TEt3nHnePwFmBT6Cck112", "BTSJQUAt4gz4civ8gSs5srTK4r82F7HvpChk", "BTSFPXXHXXGbyTBwdKoJaAPXRnhFNtTRS4EL", "BTS3qXyZnjJneeAddgNDYNYXbF7ARZrRv5dr", ])
def test_memo(self): from_priv = "5KNK3bejeP3PtQ1Q9EagBmGacYFCZ3qigRAZDbfqcdjDWWmZSMm" to_priv = "5K2JRPe1iRwD2He5DyDRtHs3Z1wpom3YXguFxEd57kNTHhQuZ2k" for msg in [ "foobar", "just a donation", "1124safafASFasc", ]: nonce = random.getrandbits(64) memo = Memo.encode_memo( PrivateKey(from_priv), PrivateKey(to_priv).pubkey, nonce, msg) plain = Memo.decode_memo(PrivateKey(to_priv), memo) self.assertEqual(msg, plain)
def appendWif(self, wif): if wif: try: PrivateKey(wif) self.wifs.append(wif) except: # noqa FIXME(sneak) raise InvalidKeyFormat
def test_btcprivkey(self): self.assertEqual([ format( PrivateKey( "5HvVz6XMx84aC5KaaBbwYrRLvWE46cH6zVnv4827SBPLorg76oq"). uncompressed.address, "BTC"), format( PrivateKey( "5Jete5oFNjjk3aUMkKuxgAXsp7ZyhgJbYNiNjHLvq5xzXkiqw7R"). uncompressed.address, "BTC"), format( PrivateKey( "5KDT58ksNsVKjYShG4Ls5ZtredybSxzmKec8juj7CojZj6LPRF7"). uncompressed.address, "BTC"), ], [ "1G7qw8FiVfHEFrSt3tDi6YgfAdrDrEM44Z", "12c7KAAZfpREaQZuvjC5EhpoN6si9vekqK", "1Gu5191CVHmaoU3Zz3prept87jjnpFDrXL", ])
def decrypt_wif(self, encwif): """ decrypt a wif key """ try: # Try to decode as wif PrivateKey(encwif) return encwif except: # noqa FIXME(sneak) pass self.unlock() return format(bip38.decrypt(encwif, self.decryptedKEK), "wif")
def test_Privatekey(self): self.assertEqual([ str( PrivateKey( "5HvVz6XMx84aC5KaaBbwYrRLvWE46cH6zVnv4827SBPLorg76oq")), str( PrivateKey( "5Jete5oFNjjk3aUMkKuxgAXsp7ZyhgJbYNiNjHLvq5xzXkiqw7R")), str( PrivateKey( "5KDT58ksNsVKjYShG4Ls5ZtredybSxzmKec8juj7CojZj6LPRF7")), repr( PrivateKey( "5HvVz6XMx84aC5KaaBbwYrRLvWE46cH6zVnv4827SBPLorg76oq")), repr( PrivateKey( "5Jete5oFNjjk3aUMkKuxgAXsp7ZyhgJbYNiNjHLvq5xzXkiqw7R")), repr( PrivateKey( "5KDT58ksNsVKjYShG4Ls5ZtredybSxzmKec8juj7CojZj6LPRF7")), ], [ "5HvVz6XMx84aC5KaaBbwYrRLvWE46cH6zVnv4827SBPLorg76oq", "5Jete5oFNjjk3aUMkKuxgAXsp7ZyhgJbYNiNjHLvq5xzXkiqw7R", "5KDT58ksNsVKjYShG4Ls5ZtredybSxzmKec8juj7CojZj6LPRF7", '0e1bfc9024d1f55a7855dc690e45b2e089d2d825a4671a3c3c7e4ea4e74ec00e', '6e5cc4653d46e690c709ed9e0570a2c75a286ad7c1bc69a648aae6855d919d3e', 'b84abd64d66ee1dd614230ebbe9d9c6d66d78d93927c395196666762e9ad69d8' ])
def test_encrypt_pylibscrypt(self): os.environ['SCRYPT_MODULE'] = 'pylibscrypt' import dpaybase.bip38 self.assertEqual([ format( dpaybase.bip38.encrypt( PrivateKey( "5HqUkGuo62BfcJU5vNhTXKJRXuUi9QSE6jp8C3uBJ2BVHtB8WSd"), "TestingOneTwoThree"), "encwif"), format( dpaybase.bip38.encrypt( PrivateKey( "5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR"), "TestingOneTwoThree"), "encwif"), format( dpaybase.bip38.encrypt( PrivateKey( "5HtasZ6ofTHP6HCwTqTkLDuLQisYPah7aUnSKfC7h4hMUVw2gi5"), "Satoshi"), "encwif") ], [ "6PRN5mjUTtud6fUXbJXezfn6oABoSr6GSLjMbrGXRZxSUcxThxsUW8epQi", "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg", "6PRNFFkZc2NZ6dJqFfhRoFNMR9Lnyj7dYGrzdgXXVMXcxoKTePPX1dWByq" ])
def setKeys(self, loadkeys): """ This method is strictly only for in memory keys that are passed to Wallet/dPay with the ``keys`` argument """ log.debug( "Force setting of private keys. Not using the wallet database!") if isinstance(loadkeys, dict): Wallet.keyMap = loadkeys loadkeys = list(loadkeys.values()) elif not isinstance(loadkeys, list): loadkeys = [loadkeys] for wif in loadkeys: try: key = PrivateKey(wif) except: # noqa FIXME(sneak) raise InvalidWifError Wallet.keys[format(key.pubkey, self.prefix)] = str(key)
def addPrivateKey(self, wif): """ Add a private key to the wallet database """ # it could be either graphenebase or dpaypybase so we can't check # the type directly if isinstance(wif, PrivateKey) or isinstance(wif, PrivateKey): wif = str(wif) try: pub = format(PrivateKey(wif).pubkey, self.prefix) except: # noqa FIXME(sneak) raise InvalidWifError( "Invalid Private Key Format. Please use WIF!") if self.keyStorage: # Test if wallet exists if not self.created(): self.newWallet() self.keyStorage.add(self.encrypt_wif(wif), pub)
def test_Vote(self): op = operations.Vote( **{ "voter": "foobara", "author": "foobarc", "permlink": "foobard", "weight": 1000 }) ops = [operations.Operation(op)] tx = SignedTransaction(ref_block_num=ref_block_num, ref_block_prefix=ref_block_prefix, expiration=expiration, operations=ops) tx = tx.sign([wif], chain=self.dpay.chain_params) tx.verify([PrivateKey(wif).pubkey], chain=self.dpay.chain_params) tx_wire = hexlify(compat_bytes(tx)).decode("ascii") compare = ("f68585abf4dce7c80457010007666f6f6261726107666f6f62617263" "07666f6f62617264e8030001202e09123f732a438ef6d6138484d7ad" "edfdcf4a4f3d171f7fcafe836efa2a3c8877290bd34c67eded824ac0" "cc39e33d154d0617f64af936a83c442f62aef08fec") self.assertEqual(compare[:-130], tx_wire[:-130])
def getAccountFromPrivateKey(self, wif): """ Obtain account name from private key """ pub = format(PrivateKey(wif).pubkey, self.prefix) return self.getAccountFromPublicKey(pub)
def encrypt_wif(self, wif): """ Encrypt a wif key """ self.unlock() return format(bip38.encrypt(PrivateKey(wif), self.decryptedKEK), "encwif")