def sign_request_with_alias(pr, alias, alias_privkey): pr.pki_type = 'dnssec+btc' pr.pki_data = str(alias) message = pr.SerializeToString() ec_key = bitcoin.regenerate_key(alias_privkey) address = bitcoin.address_from_private_key(alias_privkey) compressed = bitcoin.is_compressed(alias_privkey) pr.signature = ec_key.sign_message(message, compressed, address)
def sign(self, wif, current_time=None): """Sign the vote.""" update_time = True if current_time is not None: self.timestamp = current_time update_time = False delegate_pubkey = bitcoin.public_key_from_private_key(wif).decode('hex') eckey = bitcoin.regenerate_key(wif) serialized = unicode(self.serialize_for_sig(update_time=update_time)).encode('utf-8') return eckey.sign_message(serialized, bitcoin.is_compressed(wif))
def sign(self, wif, current_time=None): """Sign the masternode announce message. If current_time is specified, sig_time will not be updated. """ update_time = True if current_time is not None: self.sig_time = current_time update_time = False eckey = bitcoin.regenerate_key(wif) serialized = self.serialize_for_sig(update_time=update_time) self.sig = eckey.sign_message(serialized, bitcoin.is_compressed(wif)) return self.sig
def sign(self, wif, delegate_pubkey=None, current_time=None): """Sign this ping. If delegate_pubkey is specified, it will be used to verify the signature. If current_time is specified, sig_time will not be updated. """ update_time = True if current_time is not None: self.sig_time = current_time update_time = False eckey = bitcoin.regenerate_key(wif) serialized = unicode(self.serialize_for_sig(update_time=update_time)).encode('utf-8') if not delegate_pubkey: delegate_pubkey = bitcoin.public_key_from_private_key(wif).decode('hex') self.sig = eckey.sign_message(serialized, bitcoin.is_compressed(wif)) return self.sig