*) Framework for elliptic curves (crypto/ec/ec.h, crypto/ec/ec_lcl.h,
crypto/ec/ec_lib.c):
- Curves are EC_GROUP objects (with an optional generator) based
- on EC_METHODs that are built into the library.
+ Curves are EC_GROUP objects (with an optional group generator)
+ based on EC_METHODs that are built into the library.
Points are EC_POINT objects based on EC_GROUP objects.
Most of the framework would be able to handle curves over arbitrary
- finite fields, but as there are no obvious types for GF(2^n),
- some functions are limited to GF(p) for now.
+ finite fields, but as there are no obvious types for fields other
+ than GF(p), some functions are limited to that for now.
[Bodo Moeller]
*) Add the -HTTP option to s_server. It is similar to -WWW, but requires
#define EC_R_INVALID_FIELD 103
#define EC_R_INVALID_FORM 104
#define EC_R_NOT_INITIALIZED 111
-#define EC_R_NO_GENERATOR_SET 113
#define EC_R_NO_SUCH_EXTRA_DATA 105
#define EC_R_POINT_AT_INFINITY 106
#define EC_R_POINT_IS_NOT_ON_CURVE 107
#define EC_R_SLOT_FULL 108
+#define EC_R_UNDEFINED_GENERATOR 113
#ifdef __cplusplus
}
{EC_R_INVALID_FIELD ,"invalid field"},
{EC_R_INVALID_FORM ,"invalid form"},
{EC_R_NOT_INITIALIZED ,"not initialized"},
-{EC_R_NO_GENERATOR_SET ,"no generator set"},
{EC_R_NO_SUCH_EXTRA_DATA ,"no such extra data"},
{EC_R_POINT_AT_INFINITY ,"point at infinity"},
{EC_R_POINT_IS_NOT_ON_CURVE ,"point is not on curve"},
{EC_R_SLOT_FULL ,"slot full"},
+{EC_R_UNDEFINED_GENERATOR ,"undefined generator"},
{0,NULL}
};
(b) > 23 ? 3 : 1)
/* Compute
- * \sum scalar[i]*points[i]
+ * \sum scalars[i]*points[i]
* where
* scalar*generator
* is included in the addition if scalar != NULL
generator = EC_GROUP_get0_generator(group);
if (generator == NULL)
{
- ECerr(EC_F_EC_POINTS_MUL, EC_R_NO_GENERATOR_SET);
+ ECerr(EC_F_EC_POINTS_MUL, EC_R_UNDEFINED_GENERATOR);
return 0;
}
}