pub struct MPI { /* private fields */ }Expand description
A big integer type
Implementations§
Source§impl MPI
impl MPI
Sourcepub fn new_from_bytes(val: &[u8]) -> Result<MPI>
pub fn new_from_bytes(val: &[u8]) -> Result<MPI>
Crate a new MPI setting value from an array of bytes (big-endian)
Sourcepub fn new_from_i32(val: i32) -> Result<MPI>
pub fn new_from_i32(val: i32) -> Result<MPI>
Crate a new MPI setting value from a i32
Sourcepub fn new_from_u32(val: u32) -> Result<MPI>
pub fn new_from_u32(val: u32) -> Result<MPI>
Crate a new MPI setting value from a u32
Sourcepub fn set_bytes(&mut self, val: &[u8]) -> Result<()>
pub fn set_bytes(&mut self, val: &[u8]) -> Result<()>
Set self to value specified with an array of bytes (big-endian)
Sourcepub fn randomize(
&mut self,
rng: &mut RandomNumberGenerator,
bits: usize,
) -> Result<()>
pub fn randomize( &mut self, rng: &mut RandomNumberGenerator, bits: usize, ) -> Result<()>
Randomize self to an integer of specified bit size
Sourcepub fn random_range(
&mut self,
rng: &mut RandomNumberGenerator,
lower: &MPI,
upper: &MPI,
) -> Result<()>
pub fn random_range( &mut self, rng: &mut RandomNumberGenerator, lower: &MPI, upper: &MPI, ) -> Result<()>
Randomize self to an integer within specified range
Sourcepub fn byte_count(&self) -> Result<usize>
pub fn byte_count(&self) -> Result<usize>
Return number of significant bytes
Sourcepub fn is_positive(&self) -> Result<bool>
pub fn is_positive(&self) -> Result<bool>
Return true if self is an integer >= 0
Sourcepub fn is_negative(&self) -> Result<bool>
pub fn is_negative(&self) -> Result<bool>
Return true if self is an integer < 0
Sourcepub fn mp_add_assign(&mut self, other: &MPI) -> Result<()>
pub fn mp_add_assign(&mut self, other: &MPI) -> Result<()>
Addition operator, assignment version
Sourcepub fn mp_add_u32(&self, other: u32) -> Result<MPI>
pub fn mp_add_u32(&self, other: u32) -> Result<MPI>
Addition operator
Sourcepub fn mp_add_u32_assign(&mut self, other: u32) -> Result<()>
pub fn mp_add_u32_assign(&mut self, other: u32) -> Result<()>
Addition operator, assignment version
Sourcepub fn mp_sub_assign(&mut self, other: &MPI) -> Result<()>
pub fn mp_sub_assign(&mut self, other: &MPI) -> Result<()>
Subtraction operator, assignment version
Sourcepub fn mp_sub_u32(&self, other: u32) -> Result<MPI>
pub fn mp_sub_u32(&self, other: u32) -> Result<MPI>
Subtraction operator
Sourcepub fn mp_sub_u32_assign(&mut self, other: u32) -> Result<()>
pub fn mp_sub_u32_assign(&mut self, other: u32) -> Result<()>
Subtraction operator, assignment version
Sourcepub fn mp_mul_assign(&mut self, other: &MPI) -> Result<()>
pub fn mp_mul_assign(&mut self, other: &MPI) -> Result<()>
Multiplication operator, assignment version
Sourcepub fn mp_shl_assign(&mut self, shift: usize) -> Result<()>
pub fn mp_shl_assign(&mut self, shift: usize) -> Result<()>
Bitwise left shift, assignment version
Sourcepub fn mp_shr_assign(&mut self, shift: usize) -> Result<()>
pub fn mp_shr_assign(&mut self, shift: usize) -> Result<()>
Bitwise right shift, assignment version
Sourcepub fn is_prime(
&self,
rng: &mut RandomNumberGenerator,
test_prob: usize,
) -> Result<bool>
pub fn is_prime( &self, rng: &mut RandomNumberGenerator, test_prob: usize, ) -> Result<bool>
Perform a primality test on self
§Examples
use core::str::FromStr;
let n = botan::MPI::from_str("1111111111111111111").unwrap();
let mut rng = botan::RandomNumberGenerator::new_system().unwrap();
assert!(n.is_prime(&mut rng, 128).unwrap());Sourcepub fn gcd(x: &MPI, y: &MPI) -> Result<MPI>
pub fn gcd(x: &MPI, y: &MPI) -> Result<MPI>
Return the greatest common divisor of x and y
§Examples
use core::str::FromStr;
let x = botan::MPI::from_str("1111111111111111").unwrap();
let y = botan::MPI::from_str("111111111111").unwrap();
assert_eq!(botan::MPI::gcd(&x, &y).unwrap(), botan::MPI::from_str("1111").unwrap());Trait Implementations§
Source§impl AddAssign<&MPI> for MPI
impl AddAssign<&MPI> for MPI
Source§fn add_assign(&mut self, other: &MPI)
fn add_assign(&mut self, other: &MPI)
+= operation. Read moreSource§impl AddAssign<u32> for MPI
impl AddAssign<u32> for MPI
Source§fn add_assign(&mut self, other: u32)
fn add_assign(&mut self, other: u32)
+= operation. Read moreSource§impl<'a> DivAssign<&'a MPI> for MPI
impl<'a> DivAssign<&'a MPI> for MPI
Source§fn div_assign(&mut self, other: &'a MPI)
fn div_assign(&mut self, other: &'a MPI)
/= operation. Read moreSource§impl MulAssign<&MPI> for MPI
impl MulAssign<&MPI> for MPI
Source§fn mul_assign(&mut self, other: &MPI)
fn mul_assign(&mut self, other: &MPI)
*= operation. Read moreSource§impl Ord for MPI
impl Ord for MPI
Source§impl PartialOrd for MPI
impl PartialOrd for MPI
Source§impl RemAssign<&MPI> for MPI
impl RemAssign<&MPI> for MPI
Source§fn rem_assign(&mut self, other: &MPI)
fn rem_assign(&mut self, other: &MPI)
%= operation. Read moreSource§impl ShlAssign<usize> for MPI
impl ShlAssign<usize> for MPI
Source§fn shl_assign(&mut self, shift: usize)
fn shl_assign(&mut self, shift: usize)
<<= operation. Read moreSource§impl ShrAssign<usize> for MPI
impl ShrAssign<usize> for MPI
Source§fn shr_assign(&mut self, shift: usize)
fn shr_assign(&mut self, shift: usize)
>>= operation. Read moreSource§impl SubAssign<&MPI> for MPI
impl SubAssign<&MPI> for MPI
Source§fn sub_assign(&mut self, other: &MPI)
fn sub_assign(&mut self, other: &MPI)
-= operation. Read moreSource§impl SubAssign<u32> for MPI
impl SubAssign<u32> for MPI
Source§fn sub_assign(&mut self, other: u32)
fn sub_assign(&mut self, other: u32)
-= operation. Read more