The S-expression based interface is not optimal for certain operations on elliptic curves. Thus a few special functions are implemented to support common operations on curves with one of these assigned curve ids:
GCRY_ECC_CURVE25519
GCRY_ECC_CURVE448
unsigned int
gcry_ecc_get_algo_keylen (int curveid);
¶Returns the length in bytes of a point on the curve with the id curveid. 0 is returned for curves which have no assigned id.
gpg_error_t
gcry_ecc_mul_point (int curveid, unsigned char *result, const unsigned char *scalar, const unsigned char *point)
¶This function computes the scalar multiplication on the Montgomery
form of the curve with id curveid. If point is NULL
, the
base point of the curve is used. The caller needs to provide a large
enough buffer for result and a valid scalar and
point.