Skip to content

Commit

Permalink
Merge 933ef4c into 8deb089
Browse files Browse the repository at this point in the history
  • Loading branch information
t184256 committed Dec 5, 2019
2 parents 8deb089 + 933ef4c commit 17a3c83
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/ecdsa/ellipticcurve.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ def __eq__(self, other):
and self.__b == other.__b
return NotImplemented

def __hash__(self):
return hash((self.__p, self.__a, self.__b))

def p(self):
return self.__p

Expand Down
16 changes: 15 additions & 1 deletion src/ecdsa/test_ellipticcurve.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,21 @@ def test_equality_curves(self):
def test_inequality_curves(self):
c192 = CurveFp(p, -3, b)
self.assertNotEqual(self.c_23, c192)


def test_usability_in_a_hashed_collection_curves(self):
{self.c_23: None}

def test_hashability_curves(self):
hash(self.c_23)

def test_conflation_curves(self):
ne1, ne2, ne3 = CurveFp(24, 1, 1), CurveFp(23, 2, 1), CurveFp(23, 1, 2)
eq1, eq2, eq3 = CurveFp(23, 1, 1), CurveFp(23, 1, 1), self.c_23
self.assertEqual(len(set((c_23, eq1, eq2, eq3))), 1)
self.assertEqual(len(set((c_23, ne1, ne2, ne3))), 4)
self.assertDictEqual({c_23: None}, {eq1: None})
self.assertTrue(eq2 in {eq3: None})


class TestPoint(unittest.TestCase):

Expand Down

0 comments on commit 17a3c83

Please sign in to comment.