/linux-5.19.10/crypto/ |
D | ecc.c | 69 static u64 *ecc_alloc_digits_space(unsigned int ndigits) in ecc_alloc_digits_space() argument 71 size_t len = ndigits * sizeof(u64); in ecc_alloc_digits_space() 84 struct ecc_point *ecc_alloc_point(unsigned int ndigits) in ecc_alloc_point() argument 91 p->x = ecc_alloc_digits_space(ndigits); in ecc_alloc_point() 95 p->y = ecc_alloc_digits_space(ndigits); in ecc_alloc_point() 99 p->ndigits = ndigits; in ecc_alloc_point() 122 static void vli_clear(u64 *vli, unsigned int ndigits) in vli_clear() argument 126 for (i = 0; i < ndigits; i++) in vli_clear() 131 bool vli_is_zero(const u64 *vli, unsigned int ndigits) in vli_is_zero() argument 135 for (i = 0; i < ndigits; i++) { in vli_is_zero() [all …]
|
D | ecrdsa.c | 77 unsigned int ndigits = req->dst_len / sizeof(u64); in ecrdsa_verify() local 85 struct ecc_point cc = ECC_POINT_INIT(s, e, ndigits); /* reuse s, e */ in ecrdsa_verify() 97 req->dst_len != ctx->curve->g.ndigits * sizeof(u64) || in ecrdsa_verify() 98 ctx->pub_key.ndigits != ctx->curve->g.ndigits || in ecrdsa_verify() 111 vli_from_be64(s, sig, ndigits); in ecrdsa_verify() 112 vli_from_be64(r, sig + ndigits * sizeof(u64), ndigits); in ecrdsa_verify() 115 if (vli_is_zero(r, ndigits) || in ecrdsa_verify() 116 vli_cmp(r, ctx->curve->n, ndigits) >= 0 || in ecrdsa_verify() 117 vli_is_zero(s, ndigits) || in ecrdsa_verify() 118 vli_cmp(s, ctx->curve->n, ndigits) >= 0) in ecrdsa_verify() [all …]
|
D | ecdsa.c | 36 const void *value, size_t vlen, unsigned int ndigits) in ecdsa_get_signature_rs() argument 38 size_t keylen = ndigits * sizeof(u64); in ecdsa_get_signature_rs() 71 ecc_swap_digits((u64 *)rs, dest, ndigits); in ecdsa_get_signature_rs() 82 sig->curve->g.ndigits); in ecdsa_get_signature_r() 91 sig->curve->g.ndigits); in ecdsa_get_signature_s() 97 unsigned int ndigits = curve->g.ndigits; in _ecdsa_verify() local 103 struct ecc_point res = ECC_POINT_INIT(x1, y1, ndigits); in _ecdsa_verify() 106 if (vli_is_zero(r, ndigits) || vli_cmp(r, curve->n, ndigits) >= 0 || in _ecdsa_verify() 107 vli_is_zero(s, ndigits) || vli_cmp(s, curve->n, ndigits) >= 0) in _ecdsa_verify() 112 hash[ndigits - 1], hash[ndigits - 2], hash[0]); in _ecdsa_verify() [all …]
|
D | ecdh.c | 17 unsigned int ndigits; member 33 params.key_size > sizeof(u64) * ctx->ndigits) in ecdh_set_secret() 37 return ecc_gen_privkey(ctx->curve_id, ctx->ndigits, in ecdh_set_secret() 42 if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits, in ecdh_set_secret() 60 nbytes = ctx->ndigits << ECC_DIGITS_TO_BYTES_SHIFT; in ecdh_compute_value() 87 ret = crypto_ecdh_shared_secret(ctx->curve_id, ctx->ndigits, in ecdh_compute_value() 93 ret = ecc_make_pub_key(ctx->curve_id, ctx->ndigits, in ecdh_compute_value() 123 return ctx->ndigits << (ECC_DIGITS_TO_BYTES_SHIFT + 1); in ecdh_max_size() 131 ctx->ndigits = ECC_CURVE_NIST_P192_DIGITS; in ecdh_nist_p192_init_tfm() 156 ctx->ndigits = ECC_CURVE_NIST_P256_DIGITS; in ecdh_nist_p256_init_tfm() [all …]
|
D | ecrdsa_defs.h | 53 .ndigits = 256 / 64, 86 .ndigits = 256 / 64, 123 .ndigits = 256 / 64, 172 .ndigits = 512 / 64, 217 .ndigits = 512 / 64,
|
D | ecc_curve_defs.h | 23 .ndigits = 3, 49 .ndigits = 4, 81 .ndigits = 6, 100 .ndigits = 4,
|
/linux-5.19.10/include/crypto/internal/ |
D | ecc.h | 42 #define ECC_POINT_INIT(x, y, ndigits) (struct ecc_point) { x, y, ndigits } argument 50 static inline void ecc_swap_digits(const void *in, u64 *out, unsigned int ndigits) in ecc_swap_digits() argument 55 for (i = 0; i < ndigits; i++) in ecc_swap_digits() 56 out[i] = get_unaligned_be64(&src[ndigits - 1 - i]); in ecc_swap_digits() 69 int ecc_is_key_valid(unsigned int curve_id, unsigned int ndigits, 84 int ecc_gen_privkey(unsigned int curve_id, unsigned int ndigits, u64 *privkey); 97 int ecc_make_pub_key(const unsigned int curve_id, unsigned int ndigits, 115 int crypto_ecdh_shared_secret(unsigned int curve_id, unsigned int ndigits, 156 bool vli_is_zero(const u64 *vli, unsigned int ndigits); 168 int vli_cmp(const u64 *left, const u64 *right, unsigned int ndigits); [all …]
|
/linux-5.19.10/drivers/crypto/keembay/ |
D | keembay-ocs-ecc.c | 232 u32 op_size = (curve->g.ndigits > ECC_CURVE_NIST_P256_DIGITS) ? in kmb_ecc_point_mult() 234 size_t nbytes = digits_to_bytes(curve->g.ndigits); in kmb_ecc_point_mult() 313 unsigned int ndigits, const u32 inst) in kmb_ecc_do_scalar_op() argument 315 u32 op_size = (ndigits > ECC_CURVE_NIST_P256_DIGITS) ? in kmb_ecc_do_scalar_op() 317 size_t nbytes = digits_to_bytes(ndigits); in kmb_ecc_do_scalar_op() 347 if (vli_is_zero(scalar_out, ndigits)) in kmb_ecc_do_scalar_op() 363 if (WARN_ON(pk->ndigits != curve->g.ndigits)) in kmb_ocs_ecc_is_pubkey_valid_partial() 371 if (vli_cmp(curve->p, pk->x, pk->ndigits) != 1) in kmb_ocs_ecc_is_pubkey_valid_partial() 374 if (vli_cmp(curve->p, pk->y, pk->ndigits) != 1) in kmb_ocs_ecc_is_pubkey_valid_partial() 381 rc = kmb_ecc_do_scalar_op(ecc_dev, yy, pk->y, pk->y, curve, pk->ndigits, in kmb_ocs_ecc_is_pubkey_valid_partial() [all …]
|
/linux-5.19.10/net/bluetooth/ |
D | ecdh_helper.c | 44 static inline void swap_digits(u64 *in, u64 *out, unsigned int ndigits) in swap_digits() argument 48 for (i = 0; i < ndigits; i++) in swap_digits() 49 out[i] = __swab64(in[ndigits - 1 - i]); in swap_digits()
|
/linux-5.19.10/include/crypto/ |
D | ecc_curve.h | 19 u8 ndigits; member
|
/linux-5.19.10/scripts/mod/ |
D | file2alias.c | 279 int ndigits; in do_usb_entry_multi() local 296 for (ndigits = 0 ; ndigits < sizeof(bcdDevice_lo) * 2 ; ndigits++) { in do_usb_entry_multi() 297 clo = (devlo >> (ndigits << 2)) & 0xf; in do_usb_entry_multi() 298 chi = ((devhi > 0x9999 ? 0x9999 : devhi) >> (ndigits << 2)) & 0xf; in do_usb_entry_multi() 313 for (ndigits = sizeof(bcdDevice_lo) * 2 - 1; devlo <= devhi; ndigits--) { in do_usb_entry_multi() 321 if (devlo == devhi || !ndigits) { in do_usb_entry_multi() 322 do_usb_entry(symval, devlo, ndigits, clo, chi, max, mod); in do_usb_entry_multi() 330 ndigits, clo, max, max, mod); in do_usb_entry_multi() 336 ndigits, 0x0, chi, max, mod); in do_usb_entry_multi()
|
/linux-5.19.10/drivers/crypto/hisilicon/hpre/ |
D | hpre_crypto.c | 1235 static void fill_curve_param(void *addr, u64 *param, unsigned int cur_sz, u8 ndigits) in fill_curve_param() argument 1237 unsigned int sz = cur_sz - (ndigits - 1) * sizeof(u64); in fill_curve_param() 1240 while (i < ndigits - 1) { in fill_curve_param() 1245 memcpy(addr + sizeof(u64) * i, ¶m[ndigits - 1], sz); in fill_curve_param() 1269 fill_curve_param(p, curve->p, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() 1270 fill_curve_param(a, curve->a, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() 1271 fill_curve_param(b, curve->b, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() 1272 fill_curve_param(x, curve->g.x, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() 1273 fill_curve_param(y, curve->g.y, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() 1274 fill_curve_param(n, curve->n, cur_sz, curve->g.ndigits); in hpre_ecdh_fill_curve() [all …]
|