def test_no_spi(self): transform1 = Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96) transform2 = Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) proposal = Proposal(20, Proposal.Protocol.IKE, b'', [transform1, transform2]) data = proposal.to_bytes() proposal = Proposal.parse(data) self.assertEqual(proposal.spi, b'')
class TestProposal(TestPayloadMixin, unittest.TestCase): def setUp(self): super(TestProposal, self).setUp() transform1 = Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96) transform2 = Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) self.object = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [transform1, transform2]) def test_parse_random(self): with self.assertRaises(InvalidSyntax): super(TestProposal, self).test_parse_random() def test_no_transforms(self): with self.assertRaises(InvalidSyntax): Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', []) def test_no_spi(self): transform1 = Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96) transform2 = Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) proposal = Proposal(20, Proposal.Protocol.IKE, b'', [transform1, transform2]) data = proposal.to_bytes() proposal = Proposal.parse(data) self.assertEqual(proposal.spi, b'') def test_invalid_transform_header(self): data = self.object.to_bytes() with self.assertRaises(InvalidSyntax): Proposal.parse(data[:-5]) def test_get_transform(self): self.object.get_transform(Transform.Type.INTEG) self.object.get_transforms(Transform.Type.PRF) def test_intersection(self): proposal = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [ Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96), Transform(Transform.Type.ENCR, Transform.EncrId.ENCR_AES_CBC, 128), Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) ]) intersection = self.object.intersection(proposal) self.assertEqual(intersection, self.object) self.assertIsNone(proposal.intersection(self.object)) def test_is_subset(self): proposal = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [ Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96), Transform(Transform.Type.ENCR, Transform.EncrId.ENCR_AES_CBC, 128), Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) ]) self.assertTrue(self.object.is_subset(proposal)) def test_eq(self): transform1 = Transform(Transform.Type.INTEG, Transform.IntegId.AUTH_HMAC_SHA1_96) transform2 = Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_SHA1) transform3 = Transform(Transform.Type.PRF, Transform.PrfId.PRF_HMAC_MD5) proposal = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [transform2, transform1]) proposal2 = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [transform2]) proposal3 = Proposal(20, Proposal.Protocol.IKE, b'aspiwhatever', [transform1, transform2, transform3]) self.assertEqual(self.object, proposal) self.assertNotEqual(self.object, proposal2) self.assertNotEqual(self.object, proposal3)