Merge pull request #591 from cjcole/master

Fix Shr trait impl for BigNum: was using shl
This commit is contained in:
Steven Fackler 2017-03-01 08:55:38 -08:00 committed by GitHub
commit 357b994fac
1 changed files with 10 additions and 2 deletions

View File

@ -465,7 +465,7 @@ impl BigNumRef {
/// Returns a big-endian byte vector representation of the absolute value of `self`. /// Returns a big-endian byte vector representation of the absolute value of `self`.
/// ///
/// `self` can be recreated by using `new_from_slice`. /// `self` can be recreated by using `from_slice`.
/// ///
/// ``` /// ```
/// # use openssl::bn::BigNum; /// # use openssl::bn::BigNum;
@ -874,7 +874,7 @@ impl<'a> Shr<i32> for &'a BigNum {
type Output = BigNum; type Output = BigNum;
fn shr(self, n: i32) -> BigNum { fn shr(self, n: i32) -> BigNum {
self.deref().shl(n) self.deref().shr(n)
} }
} }
@ -925,6 +925,14 @@ mod tests {
assert!((-a).is_negative()); assert!((-a).is_negative());
} }
#[test]
fn test_shift() {
let a = BigNum::from_u32(909829283).unwrap();
use std::ops::{Shl, Shr};
assert!(a == a.shl(1).shr(1));
}
#[test] #[test]
fn test_prime_numbers() { fn test_prime_numbers() {
let a = BigNum::from_u32(19029017).unwrap(); let a = BigNum::from_u32(19029017).unwrap();