URI: 
       trestore the option to display private keys for export - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ed1fe712381b99d7b125e7541c68599c54db3c0c
   DIR parent d7d85c814a0b954480fb006ef9d45ca902d14597
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Tue, 20 Dec 2011 14:07:37 +0100
       
       restore the option to display private keys for export
       
       Diffstat:
         M client/electrum.py                  |      22 ++++++++++++----------
       
       1 file changed, 12 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/client/electrum.py b/client/electrum.py
       t@@ -19,7 +19,7 @@
        
        import sys, base64, os, re, hashlib, socket, getpass, copy, operator, ast
        from decimal import Decimal
       -from ecdsa.util import string_to_number
       +from ecdsa.util import string_to_number, number_to_string
        
        try:
            import ecdsa  
       t@@ -319,11 +319,12 @@ class Wallet:
        
            def get_private_key2(self, address, password):
                """  Privatekey(type,n) = Master_private_key + H(n|S|type)  """
       +        order = generator_secp256k1.order()
       +        
                if address in self.imported_keys.keys():
                    b = self.pw_decode( self.imported_keys[address], password )
                    b = ASecretToSecret( b )
                    secexp = int( b.encode('hex'), 16)
       -            private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve=SECP256k1 )
                else:
                    if address in self.addresses:
                        n = self.addresses.index(address)
       t@@ -335,14 +336,12 @@ class Wallet:
                        raise BaseException("unknown address")
                    seed = self.pw_decode( self.seed, password)
                    secexp = self.stretch_key(seed)
       -            order = generator_secp256k1.order()
       -            privkey_number = ( secexp + self.get_sequence(n,for_change) ) % order
       -            private_key = ecdsa.SigningKey.from_secret_exponent( privkey_number, curve = SECP256k1 )
       +            secexp = ( secexp + self.get_sequence(n,for_change) ) % order
        
       -        # sanity check
       -        public_key = private_key.get_verifying_key()
       -        assert address == public_key_to_bc_address( '04'.decode('hex') + public_key.to_string() )
       -        return private_key
       +        pk = number_to_string(secexp,order)
       +        return pk
       +            
       +            
        
            def create_new_address2(self, for_change):
                """   Publickey(type,n) = Master_public_key + H(n|S|type)*point  """
       t@@ -612,7 +611,7 @@ class Wallet:
                s_inputs = []
                for i in range(len(inputs)):
                    addr, v, p_hash, p_pos, p_scriptPubKey, _, _ = inputs[i]
       -            private_key = self.get_private_key2(addr, password)
       +            private_key = ecdsa.SigningKey.from_string( self.get_private_key2(addr, password), curve = SECP256k1 )
                    public_key = private_key.get_verifying_key()
                    pubkey = public_key.to_string()
                    tx = filter( raw_tx( inputs, outputs, for_sig = i ) )
       t@@ -897,6 +896,9 @@ if __name__ == '__main__':
                                else:              no += 1
                            b = "%d %d %f"%(no, ni, wallet.get_addr_balance(addr)[0]*1e-8)
                        else: b=''
       +                if options.show_keys:
       +                    pk = wallet.get_private_key2(addr, password)
       +                    addr = addr + ':' + SecretToASecret(pk)
                        print addr, b, label
        
            if cmd == 'history':