Пример #1
0
    def __init__(self, d):
        Hardware_KeyStore.__init__(self, d)
        # Errors and other user interaction is done through the wallet's
        # handler.  The handler is per-window and preserved across
        # device reconnects
        self.force_watching_only = False
        self.ux_busy = False

        # for multisig I need to know what wallet this keystore is part of
        # will be set by link_wallet
        self.my_wallet = None

        # Seems like only the derivation path and resulting **derived** xpub is stored in
        # the wallet file... however, we need to know at least the fingerprint of the master
        # xpub to verify against MiTM, and also so we can put the right value into the subkey paths
        # of PSBT files that might be generated offline. 
        # - save the fingerprint of the master xpub, as "xfp"
        # - it's a LE32 int, but hex BE32 is more natural way to view it
        # - device reports these value during encryption setup process
        # - full xpub value now optional
        lab = d['label']
        if hasattr(lab, 'xfp'):
            # initial setup
            self.ckcc_xfp = lab.xfp
            self.ckcc_xpub = getattr(lab, 'xpub', None)
        else:
            # wallet load: fatal if missing, we need them!
            self.ckcc_xfp = d['ckcc_xfp']
            self.ckcc_xpub = d.get('ckcc_xpub', None)
Пример #2
0
 def __init__(self, d):
     Hardware_KeyStore.__init__(self, d)
     # Errors and other user interaction is done through the wallet's
     # handler.  The handler is per-window and preserved across
     # device reconnects
     self.force_watching_only = False
     self.signing = False
     self.cfg = d.get('cfg', {'mode':0,'pair':''})
Пример #3
0
 def __init__(self, d):
     Hardware_KeyStore.__init__(self, d)
     # Errors and other user interaction is done through the wallet's
     # handler.  The handler is per-window and preserved across
     # device reconnects
     self.force_watching_only = False
     self.signing = False
     self.cfg = d.get('cfg', {'mode': 0})
Пример #4
0
    def __init__(self, d):
        Hardware_KeyStore.__init__(self, d)
        # Errors and other user interaction is done through the wallet's
        # handler.  The handler is per-window and preserved across
        # device reconnects
        self.force_watching_only = False
        self.ux_busy = False

        # we need to know at least the fingerprint of the master xpub to verify against MiTM
        # - device reports these value during encryption setup process
        # - full xpub value now optional
        self.ckcc_xpub = d.get('ckcc_xpub', None)
Пример #5
0
    def __init__(self, d):
        Hardware_KeyStore.__init__(self, d)
        # Errors and other user interaction is done through the wallet's
        # handler.  The handler is per-window and preserved across
        # device reconnects
        self.force_watching_only = False
        self.ux_busy = False

        # Seems like only the derivation path and resulting **derived** xpub is stored in
        # the wallet file... however, we need to know at least the fingerprint of the master
        # xpub to verify against MiTM, and also so we can put the right value into the subkey paths
        # of PSBT files that might be generated offline. 
        # - save the fingerprint of the master xpub, as "xfp"
        # - it's a LE32 int, but hex more natural way to see it
        # - device reports these value during encryption setup process
        lab = d['label']
        if hasattr(lab, 'xfp'):
            # initial setup
            self.ckcc_xfp = lab.xfp
            self.ckcc_xpub = lab.xpub
        else:
            # wallet load: fatal if missing, we need them!
            self.ckcc_xfp = d['ckcc_xfp']
            self.ckcc_xpub = d['ckcc_xpub']
Пример #6
0
 def __init__(self, d):
     Hardware_KeyStore.__init__(self, d)
     self.force_watching_only = False
     self.maxInputs = 14  # maximum inputs per single sign command
Пример #7
0
 def __init__(self, d):
     Hardware_KeyStore.__init__(self, d)
     #_logger.info(f"[Satochip_KeyStore] __init__(): xpub:{str(d.get('xpub'))}")#debugSatochip
     #_logger.info(f"[Satochip_KeyStore] __init__(): derivation:{str(d.get('derivation'))}")#debugSatochip
     self.force_watching_only = False
     self.ux_busy = False
Пример #8
0
 def __init__(self, d):
     Hardware_KeyStore.__init__(self, d)
     self.force_watching_only = False
     self.maxInputs = 14 # maximum inputs per single sign command