comparison libtomcrypt/src/pk/ecc/ltc_ecc_points.c @ 382:0cbe8f6dbf9e

propagate from branch 'au.asn.ucc.matt.ltc.dropbear' (head 2af22fb4e878750b88f80f90d439b316d229796f) to branch 'au.asn.ucc.matt.dropbear' (head 02c413252c90e9de8e03d91e9939dde3029f5c0a)
author Matt Johnston <matt@ucc.asn.au>
date Thu, 11 Jan 2007 02:41:05 +0000
parents
children f849a5ca2efc
comparison
equal deleted inserted replaced
379:b66a00272a90 382:0cbe8f6dbf9e
1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
2 *
3 * LibTomCrypt is a library that provides various cryptographic
4 * algorithms in a highly modular and flexible manner.
5 *
6 * The library is free for all purposes without any express
7 * guarantee it works.
8 *
9 * Tom St Denis, [email protected], http://libtomcrypt.com
10 */
11
12 /* Implements ECC over Z/pZ for curve y^2 = x^3 - 3x + b
13 *
14 * All curves taken from NIST recommendation paper of July 1999
15 * Available at http://csrc.nist.gov/cryptval/dss.htm
16 */
17 #include "tomcrypt.h"
18
19 /**
20 @file ltc_ecc_points.c
21 ECC Crypto, Tom St Denis
22 */
23
24 #ifdef MECC
25
26 /**
27 Allocate a new ECC point
28 @return A newly allocated point or NULL on error
29 */
30 ecc_point *ltc_ecc_new_point(void)
31 {
32 ecc_point *p;
33 p = XCALLOC(1, sizeof(*p));
34 if (p == NULL) {
35 return NULL;
36 }
37 if (mp_init_multi(&p->x, &p->y, &p->z, NULL) != CRYPT_OK) {
38 XFREE(p);
39 return NULL;
40 }
41 return p;
42 }
43
44 /** Free an ECC point from memory
45 @param p The point to free
46 */
47 void ltc_ecc_del_point(ecc_point *p)
48 {
49 /* prevents free'ing null arguments */
50 if (p != NULL) {
51 mp_clear_multi(p->x, p->y, p->z, NULL); /* note: p->z may be NULL but that's ok with this function anyways */
52 XFREE(p);
53 }
54 }
55
56 #endif
57 /* $Source: /cvs/libtom/libtomcrypt/src/pk/ecc/ltc_ecc_points.c,v $ */
58 /* $Revision: 1.5 $ */
59 /* $Date: 2006/12/04 02:19:48 $ */
60