# [−][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.

# Inputs

• sign: a u8 donating the desired sign of the resulting EdwardsPoint. 0 denotes positive and 1 negative.

# 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 ConstantTimeEq for MontgomeryPoint[src]

Equality of MontgomeryPoints is defined mod p.

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

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

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

#### type Output = MontgomeryPoint

The resulting type after applying the * operator.

### impl<'b> Mul<&'b Scalar> for MontgomeryPoint[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> 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> 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.

## Blanket Implementations

### impl<T> Same<T> for T

#### type Output = T

Should always be Self

### impl<T> ToOwned for T where    T: Clone, [src]

#### type Owned = T

The resulting type after obtaining ownership.

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

#### type Error = !

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.