def GenerateSignature(self): """ Call ``crypt.key.Sign`` to generate digital signature. """ _hash_base = self.GenerateHash() if not self.KeyID or self.KeyID == my_id.getGlobalID(key_alias='master'): return key.Sign(_hash_base) return my_keys.sign(self.KeyID, _hash_base)
def sign(self): """ Make a hash, generate digital signature on it and remember the signature. """ hashcode = self.makehash() self.signature = key.Sign(hashcode) if not self.Valid(): lg.warn("identity is not valid after making sign!") raise Exception("identity sign fails")
def add_signature(coin_json, role): """ """ _coin = coin_json.copy() _coin[role] = { 'idurl': my_id.getLocalID(), 'pubkey': key.MyPublicKey(), } coin_hash = get_coin_hash(_coin) _coin[role]['signature'] = key.Sign(coin_hash) return _coin
def sign_key_info(key_info): key_info['signature_pubkey'] = key.MyPublicKey() sorted_fields = sorted(key_info.keys()) hash_items = [] for field in sorted_fields: if field not in ['include_private', 'signature', 'private', ]: hash_items.append(strng.to_text(key_info[field])) hash_text = '-'.join(hash_items) hash_bin = key.Hash(strng.to_bin(hash_text)) key_info['signature'] = strng.to_text(key.Sign(hash_bin)) return key_info
def prepare_broadcast_message(owner, payload): tm = utime.utcnow_to_sec1970() rnd = ''.join(random.choice(string.ascii_uppercase) for _ in range(4)) msgid = '%s:%s:%s' % (tm, rnd, owner) msg = [ ('owner', owner), ('started', tm), ('id', msgid), ('payload', payload), ] owner_sign = key.Sign(key.Hash(str(msg))) msg = {k: v for k, v in msg} msg['owner_sign'] = owner_sign return msg
def sign_key_info(key_info): key_info['signature_pubkey'] = key.MyPublicKey() hash_items = [] for field in [ 'alias', 'public', 'signature_pubkey', ]: hash_items.append(strng.to_text(key_info[field])) hash_text = '-'.join(hash_items) if _Debug: lg.dbg(_DebugLevel, hash_text) hash_bin = key.Hash(strng.to_bin(hash_text)) key_info['signature'] = strng.to_text(key.Sign(hash_bin)) return key_info
def GenerateSignature(self): """ Call ``crypt.key.Sign`` to generate digital signature. """ _hash_base = self.GenerateHash() signature = key.Sign(_hash_base) # if not self.KeyID or self.KeyID == my_id.getGlobalID(key_alias='master'): # signature = key.Sign(_hash_base) # else: # signature = my_keys.sign(self.KeyID, _hash_base) # if _Debug: # if _LogSignVerify: # try: # from main import settings # try: # from Cryptodome.Util import number # except: # from Crypto.Util import number # @UnresolvedImport @Reimport # open(os.path.join(settings.LogsDir(), 'crypt.log'), 'wb').write(b'\GenerateSignature:\n' + strng.to_bin(number.long_to_bytes(signature)) + b'\n\n') # except: # lg.exc() return signature
def GenerateSignature(self): """ Call ``crypt.key.Sign()`` to generate signature. """ return key.Sign(self.GenerateHash())
def GenerateSignature(self, signing_key): """ Call ``crypt.key.Sign()`` to generate signature. """ # TODO: make possible to use `signing_key` to sign data return key.Sign(self.GenerateHash())