1 /*
2 * Copyright (C) 2017 - This file is part of libecc project
3 *
4 * Authors:
5 * Ryad BENADJILA <ryadbenadjila@gmail.com>
6 * Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
7 * Jean-Pierre FLORI <jean-pierre.flori@ssi.gouv.fr>
8 *
9 * Contributors:
10 * Nicolas VIVET <nicolas.vivet@ssi.gouv.fr>
11 * Karim KHALFALLAH <karim.khalfallah@ssi.gouv.fr>
12 *
13 * This software is licensed under a dual BSD and GPL v2 license.
14 * See LICENSE file at the root folder of the project.
15 */
16 #include <libecc/utils/print_curves.h>
17
18 /*
19 * Locally convert given projective point to affine representation and
20 * print x and y coordinates.
21 */
ec_point_print(const char * msg,prj_pt_src_t pt)22 void ec_point_print(const char *msg, prj_pt_src_t pt)
23 {
24 aff_pt y_aff;
25 int ret, iszero;
26 y_aff.magic = WORD(0);
27
28 MUST_HAVE(msg != NULL, ret, err);
29 ret = prj_pt_iszero(pt, &iszero); EG(ret, err);
30 if (iszero) {
31 ext_printf("%s: infinity\n", msg);
32 goto err;
33 }
34
35 ret = prj_pt_to_aff(&y_aff, pt); EG(ret, err);
36 ext_printf("%s", msg);
37 nn_print("x", &(y_aff.x.fp_val));
38 ext_printf("%s", msg);
39 nn_print("y", &(y_aff.y.fp_val));
40
41 err:
42 aff_pt_uninit(&y_aff);
43 return;
44 }
45
ec_montgomery_point_print(const char * msg,aff_pt_montgomery_src_t pt)46 void ec_montgomery_point_print(const char *msg, aff_pt_montgomery_src_t pt)
47 {
48 int ret;
49
50 MUST_HAVE(msg != NULL, ret, err);
51 ret = aff_pt_montgomery_check_initialized(pt); EG(ret, err);
52
53 ext_printf("%s", msg);
54 nn_print("u", &(pt->u.fp_val));
55 ext_printf("%s", msg);
56 nn_print("v", &(pt->v.fp_val));
57
58 err:
59 return;
60 }
61
ec_edwards_point_print(const char * msg,aff_pt_edwards_src_t pt)62 void ec_edwards_point_print(const char *msg, aff_pt_edwards_src_t pt)
63 {
64 int ret;
65
66 MUST_HAVE(msg != NULL, ret, err);
67 ret = aff_pt_edwards_check_initialized(pt); EG(ret, err);
68
69 ext_printf("%s", msg);
70 nn_print("x", &(pt->x.fp_val));
71 ext_printf("%s", msg);
72 nn_print("y", &(pt->y.fp_val));
73
74 err:
75 return;
76 }
77