MCPcopy Index your code
hub / github.com/Bitmessage/PyBitmessage / reloadMyAddressHashes

Function reloadMyAddressHashes

src/shared.py:105–136  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

103
104
105def reloadMyAddressHashes():
106 logger.debug('reloading keys from keys.dat file')
107 myECCryptorObjects.clear()
108 myAddressesByHash.clear()
109 myAddressesByTag.clear()
110 #myPrivateKeys.clear()
111
112 keyfileSecure = checkSensitiveFilePermissions(state.appdata + 'keys.dat')
113 hasEnabledKeys = False
114 for addressInKeysFile in BMConfigParser().addresses():
115 isEnabled = BMConfigParser().getboolean(addressInKeysFile, 'enabled')
116 if isEnabled:
117 hasEnabledKeys = True
118 status,addressVersionNumber,streamNumber,hash = decodeAddress(addressInKeysFile)
119 if addressVersionNumber == 2 or addressVersionNumber == 3 or addressVersionNumber == 4:
120 # Returns a simple 32 bytes of information encoded in 64 Hex characters,
121 # or null if there was an error.
122 privEncryptionKey = hexlify(decodeWalletImportFormat(
123 BMConfigParser().get(addressInKeysFile, 'privencryptionkey')))
124
125 if len(privEncryptionKey) == 64:#It is 32 bytes encoded as 64 hex characters
126 myECCryptorObjects[hash] = highlevelcrypto.makeCryptor(privEncryptionKey)
127 myAddressesByHash[hash] = addressInKeysFile
128 tag = hashlib.sha512(hashlib.sha512(encodeVarint(
129 addressVersionNumber) + encodeVarint(streamNumber) + hash).digest()).digest()[32:]
130 myAddressesByTag[tag] = addressInKeysFile
131
132 else:
133 logger.error('Error in reloadMyAddressHashes: Can\'t handle address versions other than 2, 3, or 4.\n')
134
135 if not keyfileSecure:
136 fixSensitiveFilePermissions(state.appdata + 'keys.dat', hasEnabledKeys)
137
138def reloadBroadcastSendersForWhichImWatching():
139 broadcastSendersForWhichImWatching.clear()

Callers

nothing calls this directly

Calls 9

BMConfigParserClass · 0.90
decodeAddressFunction · 0.85
decodeWalletImportFormatFunction · 0.85
encodeVarintFunction · 0.85
clearMethod · 0.80
addressesMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected