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}