# [−][src]Struct curve25519_dalek::montgomery::MontgomeryPoint

pub struct MontgomeryPoint(pub [u8; 32]);

Holds the $$u$$-coordinate of a point on the Montgomery form of Curve25519 or its twist.

## Methods

### impl MontgomeryPoint[src]

#### pub fn as_bytes<'a>(&'a self) -> &'a [u8; 32][src]

View this MontgomeryPoint as an array of bytes.

#### pub fn to_bytes(&self) -> [u8; 32][src]

Convert this MontgomeryPoint to an array of bytes.

#### pub fn to_edwards(&self, sign: u8) -> Option<EdwardsPoint>[src]

Attempt to convert to an EdwardsPoint, using the supplied choice of sign for the EdwardsPoint.

# Return

• Some(EdwardsPoint) if self is the $$u$$-coordinate of a point on (the Montgomery form of) Curve25519;

• None if self is the $$u$$-coordinate of a point on the twist of (the Montgomery form of) Curve25519;

## Trait Implementations

### impl Clone for MontgomeryPoint[src]

#### fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

### impl PartialEq<MontgomeryPoint> for MontgomeryPoint[src]

#### #[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

### impl<'b> Mul<&'b Scalar> for MontgomeryPoint[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl<'a> Mul<Scalar> for &'a MontgomeryPoint[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl Mul<Scalar> for MontgomeryPoint[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl<'b> Mul<&'b MontgomeryPoint> for Scalar[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl<'a> Mul<MontgomeryPoint> for &'a Scalar[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl Mul<MontgomeryPoint> for Scalar[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl<'a, 'b> Mul<&'b Scalar> for &'a MontgomeryPoint[src]

Multiply this MontgomeryPoint by a Scalar.

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

#### fn mul(self, scalar: &'b Scalar) -> MontgomeryPoint[src]

Given self $$= u_0(P)$$, and a Scalar $$n$$, return $$u_0([n]P)$$.

### impl<'a, 'b> Mul<&'b MontgomeryPoint> for &'a Scalar[src]

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl ConstantTimeEq for MontgomeryPoint[src]

Equality of MontgomeryPoints is defined mod p.

## Blanket Implementations

### impl<T, U> TryFrom for T where    U: Into<T>, [src]

#### type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

### impl<T, U> TryInto for T where    U: TryFrom<T>, [src]

#### type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

### impl<T> Same for T

#### type Output = T

Should always be Self