From 40e2b07ab0b69e7fb1c0d6b62212b2ee2b4a7e32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Sun, 24 Aug 2014 21:02:12 +0200
Subject: [PATCH] New script ecc-ref.gp.

---
 ChangeLog       |  4 ++++
 misc/ecc-ref.gp | 30 ++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 misc/ecc-ref.gp

diff --git a/ChangeLog b/ChangeLog
index 874a1b7f..879011c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-24  Niels Möller  <nisse@lysator.liu.se>
+
+	* misc/ecc-ref.gp: Script to generate ECDH test data.
+
 2014-08-23  Niels Möller  <nisse@lysator.liu.se>
 
 	* ecc-a-to-j.c (ecc_a_to_j): Deleted INITIAL argument.
diff --git a/misc/ecc-ref.gp b/misc/ecc-ref.gp
new file mode 100644
index 00000000..2af41755
--- /dev/null
+++ b/misc/ecc-ref.gp
@@ -0,0 +1,30 @@
+/* Script for pari/gp. Run as gp -q ecc-ref.gp */
+
+out(apriv, A, bpriv, B, S) = print(	\
+  "/* a_s */ \"", apriv, "\",\n",	\
+  "/* a_x */ \"", component(A[1], 2), "\",\n",	\
+  "/* a_y */ \"", component(A[2], 2), "\",\n",	\
+  "/* b_s */ \"", bpriv, "\",\n",			\
+  "/* b_x */ \"", component(B[1], 2), "\",\n",	\
+  "/* b_y */ \"", component(B[2], 2), "\",\n",	\
+  "/* s_x */ \"", component(S[1], 2), "\",\n",	\
+  "/* s_y */ \"", component(S[2], 2), "\",");
+				   
+p192 = 2^192 - 2^64 - 1;
+b192 = 2455155546008943817740293915197451784769108058161191238065;
+g192 = Mod([602046282375688656758213480587526111916698976636884684818, \
+	    174050332293622031404857552280219410364023488927386650641], p192);
+secp192 = ellinit(Mod([0,0,0,-3, b192], p192));
+q192 = 6277101735386680763835789423176059013767194773182842284081;
+if (ellorder(secp192, g192) != q192, error("secp192 parameter error"));
+
+a192 = 1+random(q192-1);
+b192 = 1+random(q192-1);
+A192 = ellpow(secp192, g192, a192);
+B192 = ellpow(secp192, g192, b192);
+S192 = ellpow(secp192, A192, b192);
+if (S192 != ellpow(secp192, B192, a192), error("secp192 dh error"));
+print("secp192");
+out(a192, A192, b192, B192, S192);
+
+quit
-- 
GitLab