Esempio n. 1
0
 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)
Esempio n. 2
0
 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")
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
 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
Esempio n. 8
0
 def GenerateSignature(self):
     """
     Call ``crypt.key.Sign()`` to generate signature.
     """
     return key.Sign(self.GenerateHash())
Esempio n. 9
0
 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())