mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-04 20:24:10 +00:00
curve: Impl Default ConstantTImeEq and ConditionallySelectable for SubgroupPoint (#672)
This commit is contained in:
parent
79ab6c29bd
commit
83a57e591f
1 changed files with 15 additions and 1 deletions
|
|
@ -1335,7 +1335,7 @@ impl GroupEncoding for EdwardsPoint {
|
|||
/// A `SubgroupPoint` represents a point on the Edwards form of Curve25519, that is
|
||||
/// guaranteed to be in the prime-order subgroup.
|
||||
#[cfg(feature = "group")]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||
pub struct SubgroupPoint(EdwardsPoint);
|
||||
|
||||
#[cfg(feature = "group")]
|
||||
|
|
@ -1510,6 +1510,20 @@ impl MulAssign<&Scalar> for SubgroupPoint {
|
|||
#[cfg(feature = "group")]
|
||||
define_mul_assign_variants!(LHS = SubgroupPoint, RHS = Scalar);
|
||||
|
||||
#[cfg(feature = "group")]
|
||||
impl ConstantTimeEq for SubgroupPoint {
|
||||
fn ct_eq(&self, other: &SubgroupPoint) -> Choice {
|
||||
self.0.ct_eq(&other.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "group")]
|
||||
impl ConditionallySelectable for SubgroupPoint {
|
||||
fn conditional_select(a: &SubgroupPoint, b: &SubgroupPoint, choice: Choice) -> SubgroupPoint {
|
||||
SubgroupPoint(EdwardsPoint::conditional_select(&a.0, &b.0, choice))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "group")]
|
||||
impl group::Group for SubgroupPoint {
|
||||
type Scalar = Scalar;
|
||||
|
|
|
|||
Loading…
Reference in a new issue