Skip to main content

primitives/algebra/field/
field_extension_name.rs

1use itertools::Itertools;
2
3use crate::types::identifiers::Named;
4
5impl Named for crate::algebra::field::binary::Gf2 {
6    fn get_name() -> String {
7        "GF2".to_string()
8    }
9}
10
11impl<P: crate::algebra::field::binary::gf2_ext::Gf2ExtParams, const K: usize> Named
12    for crate::algebra::field::binary::Gf2Ext<P, K>
13{
14    fn get_name() -> String {
15        let poly = P::POLY_MOD_ONES
16            .iter()
17            .map(|k| format!("X^{k}"))
18            .join(" + ");
19        format!("GF(2^{}, 1 + {poly})", K * 64).to_string()
20    }
21}
22
23impl Named for crate::algebra::elliptic_curve::Curve25519Ristretto {
24    fn get_name() -> String {
25        "Curve25519Ristretto".to_string()
26    }
27}
28
29impl Named
30    for crate::algebra::elliptic_curve::ScalarField<
31        crate::algebra::elliptic_curve::Curve25519Ristretto,
32    >
33{
34    fn get_name() -> String {
35        "Curve25519Ristretto_ScalarField".to_string()
36    }
37}
38impl Named
39    for crate::algebra::elliptic_curve::BaseField<
40        crate::algebra::elliptic_curve::Curve25519Ristretto,
41    >
42{
43    fn get_name() -> String {
44        "Curve25519Ristretto_BaseField".to_string()
45    }
46}
47
48impl Named for crate::algebra::elliptic_curve::P384 {
49    fn get_name() -> String {
50        "P384".to_string()
51    }
52}
53
54impl Named for crate::algebra::field::binary::Gf2_128Field {
55    fn get_name() -> String {
56        // Distinct from Gf2_128's name so RNG domain separation keeps the two backends' keys
57        // independent.
58        "Gf2_128Field".to_string()
59    }
60}
61
62impl Named for crate::algebra::field::mersenne::Mersenne107 {
63    fn get_name() -> String {
64        "Mersenne107".to_string()
65    }
66}