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_CURVE25519GCRY_ECC_CURVE448unsigned 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.