Add timestamp to Ursula for serialization

Add timestamp to deserialized vars in verify_node
Add timestamp when deserializing from batch
pull/436/head
tuxxy 2018-09-14 13:34:43 -06:00
parent e6721bdbdb
commit f2f8a8bece
2 changed files with 9 additions and 4 deletions

View File

@ -558,7 +558,10 @@ class Ursula(Character, VerifiableNode, Miner):
certificate = self.rest_server_certificate()
cert_vbytes = VariableLengthBytestring(certificate.public_bytes(Encoding.PEM))
as_bytes = bytes().join((bytes(self._interface_signature),
timestamp = maya.now().epoch.to_bytes(4, 'big')
as_bytes = bytes().join((timestamp,
bytes(self._interface_signature),
bytes(identity_evidence),
bytes(self.public_keys(SigningPower)),
bytes(self.public_keys(EncryptingPower)),
@ -592,7 +595,8 @@ class Ursula(Character, VerifiableNode, Miner):
federated_only: bool = False,
) -> 'Ursula':
(signature,
(timestamp,
signature,
identity_evidence,
verifying_key,
encrypting_key,
@ -623,7 +627,8 @@ class Ursula(Character, VerifiableNode, Miner):
stranger_ursulas = []
ursulas_attrs = cls._internal_splitter.repeat(ursulas_as_bytes)
for (signature,
for (timestamp,
signature,
identity_evidence,
verifying_key,
encrypting_key,

View File

@ -117,7 +117,7 @@ class VerifiableNode:
port=self.rest_information()[0].port)
if not response.status_code == 200:
raise RuntimeError("Or something.") # TODO: Raise an error here? Or return False? Or something?
signature, identity_evidence, verifying_key, encrypting_key, public_address, certificate_vbytes, rest_info = self._internal_splitter(response.content)
timestamp, signature, identity_evidence, verifying_key, encrypting_key, public_address, certificate_vbytes, rest_info = self._internal_splitter(response.content)
verifying_keys_match = verifying_key == self.public_keys(SigningPower)
encrypting_keys_match = encrypting_key == self.public_keys(EncryptingPower)