Browse Source

Add crypto_ec_point_cmp()

This is needed to allow SAE to check whether ECC elements are identical.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 9 years ago
parent
commit
4e7e68890a
2 changed files with 20 additions and 0 deletions
  1. 11 0
      src/crypto/crypto.h
  2. 9 0
      src/crypto/crypto_openssl.c

+ 11 - 0
src/crypto/crypto.h

@@ -776,4 +776,15 @@ int crypto_ec_point_is_at_infinity(struct crypto_ec *e,
 int crypto_ec_point_is_on_curve(struct crypto_ec *e,
 				const struct crypto_ec_point *p);
 
+/**
+ * crypto_ec_point_cmp - Compare two EC points
+ * @e: EC context from crypto_ec_init()
+ * @a: EC point
+ * @b: EC point
+ * Returns: 0 on equal, non-zero otherwise
+ */
+int crypto_ec_point_cmp(const struct crypto_ec *e,
+			const struct crypto_ec_point *a,
+			const struct crypto_ec_point *b);
+
 #endif /* CRYPTO_H */

+ 9 - 0
src/crypto/crypto_openssl.c

@@ -1326,4 +1326,13 @@ int crypto_ec_point_is_on_curve(struct crypto_ec *e,
 	return EC_POINT_is_on_curve(e->group, (const EC_POINT *) p, e->bnctx);
 }
 
+
+int crypto_ec_point_cmp(const struct crypto_ec *e,
+			const struct crypto_ec_point *a,
+			const struct crypto_ec_point *b)
+{
+	return EC_POINT_cmp(e->group, (const EC_POINT *) a,
+			    (const EC_POINT *) b, e->bnctx);
+}
+
 #endif /* CONFIG_ECC */