Lines Matching full:curve
3 * Elliptic Curve (Russian) Digital Signature Algorithm for Cryptographic API
37 const struct ecc_curve *curve; /* curve from oid */ member
86 * Digest value, digest algorithm, and curve (modulus) should have the in ecrdsa_verify()
90 if (!ctx->curve || in ecrdsa_verify()
96 dlen != ctx->curve->g.ndigits * sizeof(u64) || in ecrdsa_verify()
97 ctx->pub_key.ndigits != ctx->curve->g.ndigits || in ecrdsa_verify()
108 vli_cmp(r, ctx->curve->n, ndigits) >= 0 || in ecrdsa_verify()
110 vli_cmp(s, ctx->curve->n, ndigits) >= 0) in ecrdsa_verify()
116 if (vli_cmp(e, ctx->curve->n, ndigits) >= 0) in ecrdsa_verify()
117 vli_sub(e, e, ctx->curve->n, ndigits); in ecrdsa_verify()
122 vli_mod_inv(v, e, ctx->curve->n, ndigits); in ecrdsa_verify()
125 vli_mod_mult_slow(z1, s, v, ctx->curve->n, ndigits); in ecrdsa_verify()
126 vli_sub(_r, ctx->curve->n, r, ndigits); in ecrdsa_verify()
127 vli_mod_mult_slow(z2, _r, v, ctx->curve->n, ndigits); in ecrdsa_verify()
130 ecc_point_mult_shamir(&cc, z1, &ctx->curve->g, z2, &ctx->pub_key, in ecrdsa_verify()
131 ctx->curve); in ecrdsa_verify()
132 if (vli_cmp(cc.x, ctx->curve->n, ndigits) >= 0) in ecrdsa_verify()
133 vli_sub(cc.x, cc.x, ctx->curve->n, ndigits); in ecrdsa_verify()
150 ctx->curve = get_curve_by_oid(ctx->curve_oid); in ecrdsa_param_curve()
217 * Sizes of algo (set in digest_len) and curve should match in ecrdsa_set_pub_key()
220 if (!ctx->curve || in ecrdsa_set_pub_key()
221 ctx->curve->g.ndigits * sizeof(u64) != ctx->digest_len) in ecrdsa_set_pub_key()
225 * curve size. in ecrdsa_set_pub_key()
229 ctx->key_len != ctx->curve->g.ndigits * sizeof(u64) * 2) in ecrdsa_set_pub_key()
238 if (ecc_is_pubkey_valid_partial(ctx->curve, &ctx->pub_key)) in ecrdsa_set_pub_key()