Lines Matching full:curve

44  * ## Elliptic Curve API
52 * Since all currently defined elliptic curve identifiers are in the 0..31
54 * word, such that bit x corresponds to curve of identifier x.
67 * point for that curve.
72 * that curve. That value uses unsigned big-endian encoding.
81 * Multiply a curve point with an integer.
85 * Multiply the curve generator with an integer. This may be faster
90 * Multiply two curve points by two integers, and return the sum of
93 * All curve points are represented in uncompressed format. The `mul()`
95 * are really part of the relevant curve subgroup.
100 * of the relevant curve subgroup. An error is reported if that is
143 * Standard curve ID. These ID are equal to the assigned numerical
148 /** \brief Identifier for named curve sect163k1. */
151 /** \brief Identifier for named curve sect163r1. */
154 /** \brief Identifier for named curve sect163r2. */
157 /** \brief Identifier for named curve sect193r1. */
160 /** \brief Identifier for named curve sect193r2. */
163 /** \brief Identifier for named curve sect233k1. */
166 /** \brief Identifier for named curve sect233r1. */
169 /** \brief Identifier for named curve sect239k1. */
172 /** \brief Identifier for named curve sect283k1. */
175 /** \brief Identifier for named curve sect283r1. */
178 /** \brief Identifier for named curve sect409k1. */
181 /** \brief Identifier for named curve sect409r1. */
184 /** \brief Identifier for named curve sect571k1. */
187 /** \brief Identifier for named curve sect571r1. */
190 /** \brief Identifier for named curve secp160k1. */
193 /** \brief Identifier for named curve secp160r1. */
196 /** \brief Identifier for named curve secp160r2. */
199 /** \brief Identifier for named curve secp192k1. */
202 /** \brief Identifier for named curve secp192r1. */
205 /** \brief Identifier for named curve secp224k1. */
208 /** \brief Identifier for named curve secp224r1. */
211 /** \brief Identifier for named curve secp256k1. */
214 /** \brief Identifier for named curve secp256r1. */
217 /** \brief Identifier for named curve secp384r1. */
220 /** \brief Identifier for named curve secp521r1. */
223 /** \brief Identifier for named curve brainpoolP256r1. */
226 /** \brief Identifier for named curve brainpoolP384r1. */
229 /** \brief Identifier for named curve brainpoolP512r1. */
232 /** \brief Identifier for named curve Curve25519. */
235 /** \brief Identifier for named curve Curve448. */
242 /** \brief Identifier for the curve used by this key. */
243 int curve; member
244 /** \brief Public curve point (uncompressed format). */
246 /** \brief Length of public curve point (in bytes). */
253 * The private key is an integer modulo the curve subgroup order. The
255 * recommended that the private key has the same length as the curve
259 /** \brief Identifier for the curve used by this key. */
260 int curve; member
274 * This word is a bitfield: bit `x` is set if the curve of ID `x`
285 * curve point) for the specified curve. This function MUST NOT
286 * be called if the curve is not supported.
288 * \param curve curve identifier.
292 const unsigned char *(*generator)(int curve, size_t *len);
298 * the conventional generator, for the specified curve. Unsigned
300 * if the curve is not supported.
302 * \param curve curve identifier.
306 const unsigned char *(*order)(int curve, size_t *len);
314 * \param curve curve identifier.
318 size_t (*xoff)(int curve, size_t *len);
321 * \brief Multiply a curve point by an integer.
329 * - The specified curve MUST be supported.
331 * - The source point must be a valid point on the relevant curve
336 * curve subgroup order. If this property does not hold, then
347 * \param curve curve identifier.
351 const unsigned char *x, size_t xlen, int curve);
356 * The multiplier MUST be non-zero and less than the curve
363 * \param curve curve identifier.
367 const unsigned char *x, size_t xlen, int curve);
378 * - The specified curve MUST be supported.
381 * the relevant curve subgroup (and not the "point at
391 * and less than the curve subgroup order. If either integer
409 * \param curve curve identifier.
414 const unsigned char *y, size_t ylen, int curve);
438 * This implementation uses specialised code for curve secp256r1 (also
448 * This implementation uses specialised code for curve secp256r1 (also
495 * curve definition, the following applies:
509 * curve definition, the following applies:
522 * integers up to 15 bits. Due to the specificities of the curve
536 * integers up to 31 bits. Due to the specificities of the curve
553 * to that implementation. Due to the specificities of the curve
577 * to that implementation. Due to the specificities of the curve
664 * and 0 is returned. This function returns 0 if the specified curve is
669 * curve:
671 * | curve | raw | asn1 |
699 * function returns 0 if the specified curve is not supported by the
905 * If the specified `curve` is not supported by the elliptic curve
922 * \param impl the elliptic curve implementation.
925 * \param curve the curve identifier.
930 void *kbuf, int curve);
935 * This function uses the provided elliptic curve implementation (`impl`)
948 * If the curve used by the private key is not supported by the curve
954 * \param impl the elliptic curve implementation.