pub fn coordinates(&self) -> Result<(Vec<u8>, Vec<u8>)> {
        let mut ctx = BigNumContext::new()?;
        let mut x = BigNum::new()?;
        let mut y = BigNum::new()?;
        let ec = self.private_key.ec_key()?;
        ec.public_key()
            .affine_coordinates(ec.group(), &mut x, &mut y, &mut ctx)?;
        let (mut x, mut y) = (x.to_vec(), y.to_vec());
        pad_left(&mut x, self.algorithm.len() / 2);
        pad_left(&mut y, self.algorithm.len() / 2);
        Ok((x, y))
    }
/// Public key X Y coordinates. Always padded to the full size.
Public key X Y coordinates. Always padded to the full size.
Public key X Y coordinates . Always padded to the full size .
pub fn coordinates(&self) -> Result<(Vec<u8>, Vec<u8>)> {
        let mut ctx = BigNumContext::new()?;
        let mut x = BigNum::new()?;
        let mut y = BigNum::new()?;
        let ec = self.private_key.ec_key()?;
        ec.public_key()
            .affine_coordinates(ec.group(), &mut x, &mut y, &mut ctx)?;
        let (mut x, mut y) = (x.to_vec(), y.to_vec());
        pad_left(&mut x, self.algorithm.len() / 2);
        pad_left(&mut y, self.algorithm.len() / 2);
        Ok((x, y))
    }
pub fn coordinates ( & self ) -> Result < ( Vec < u8 > , Vec < u8 > ) > { let mut ctx = BigNumContext :: new ( ) ? ; let mut x = BigNum :: new ( ) ? ; let mut y = BigNum :: new ( ) ? ; let ec = self . private_key . ec_key ( ) ? ; ec . public_key ( ) . affine_coordinates ( ec . group ( ) , & mut x , & mut y , & mut ctx ) ? ; let ( mut x , mut y ) = ( x . to_vec ( ) , y . to_vec ( ) ) ; pad_left ( & mut x , self . algorithm . len ( ) / 2 ) ; pad_left ( & mut y , self . algorithm . len ( ) / 2 ) ; Ok ( ( x , y ) ) }
Public key X Y coordinates.
Public key X Y coordinates .
&self
&self