Skip to main content

isogeny/
kernel.rs

1//! Kernel subgroup of an isogeny.
2
3use ec::curve_ops::Curve;
4use ec::point_ops::PointOps;
5
6/// The structure for a kernel of an isogeny
7pub struct KernelSubgroup<C: Curve> {
8    /// All the points in the kernel of the isogney
9    pub points: Vec<C::Point>,
10}
11
12impl<C: Curve> KernelSubgroup<C> {
13    /// Check whether the isogney kernel is trivial
14    pub fn trivial(curve: &C) -> Self {
15        Self {
16            points: vec![C::Point::identity(curve)],
17        }
18    }
19}