def test_parse(self): dest = datatypes.Destination(crypto.ElGamalKey(), crypto.DSAKey(), datatypes.Certificate()) lease = datatypes.Lease(b'f'*32, 1, datatypes.Date(1)) ls = datatypes.LeaseSet(dest=dest, ls_enckey=crypto.ElGamalKey(), ls_sigkey=crypto.DSAKey(), leases=[lease]) data = ls.serialize() ls2 = datatypes.LeaseSet(raw=data) assert ls2.dest.base64() == ls.dest.base64() assert ls2.enckey.key.y == ls.enckey.key.y assert ls2.sigkey.key.y == ls.sigkey.key.y assert len(ls2.leases) == len(ls.leases)
def test_generate_from_keycert(self): keycert = datatypes.KeyCertificate(crypto.DSAKey(), crypto.ElGamalKey()) dest = datatypes.Destination(cert=keycert) assert dest.enckey.key_type == crypto.EncType.ELGAMAL_2048 assert dest.sigkey.key_type == crypto.SigType.DSA_SHA1 assert dest.cert.type == datatypes.CertificateType.NULL keycert = datatypes.KeyCertificate(crypto.ECDSA256Key(), crypto.ElGamalKey()) dest = datatypes.Destination(cert=keycert) self._assert_keycert(dest, crypto.EncType.ELGAMAL_2048, crypto.SigType.ECDSA_SHA256_P256)
def test_serialize_keycert(self): dest = datatypes.Destination(crypto.ElGamalKey(), crypto.ECDSA256Key()) assert dest.cert.type == datatypes.CertificateType.KEY data = dest.serialize() dest2 = datatypes.Destination(raw=data) assert dest2.enckey.key.y == dest.enckey.key.y assert dest2.sigkey.key.get_pubkey() == dest.sigkey.key.get_pubkey() assert dest2.cert.type == dest.cert.type assert dest2.padding == dest.padding
def test_serialize_nullcert(self): dest = datatypes.Destination(crypto.ElGamalKey(), crypto.DSAKey()) assert dest.cert.type == datatypes.CertificateType.NULL data = dest.serialize() dest2 = datatypes.Destination(raw=data) assert dest2.enckey.key.y == dest.enckey.key.y assert dest2.sigkey.key.y == dest.sigkey.key.y assert dest2.cert.type == dest.cert.type assert dest2.padding == dest.padding
def test_create_from_keys(self): cert = datatypes.KeyCertificate(crypto.DSAKey(), crypto.ElGamalKey()) assert_KeyCert_DSA_ElGamal(cert)
def test_serialize(self): dest = datatypes.Destination(crypto.ElGamalKey(), crypto.DSAKey(), datatypes.Certificate()) lease = datatypes.Lease(b'f'*32, 1, datatypes.Date(1)) ls = datatypes.LeaseSet(dest=dest, ls_enckey=crypto.ElGamalKey(), ls_sigkey=crypto.DSAKey(), leases=[lease]) data = ls.serialize() dest.verify(data[:-40], data[-40:])