categories = ["cryptography", "authentication"]
[dependencies]
-num = "0.2"
+num-bigint = "0.2"
+num-traits = "0.2"
generic-array = "0.12"
digest = "0.8"
lazy_static = "1.2"
use digest::Digest;
use generic_array::GenericArray;
-use num::{BigUint, Zero};
+use num_bigint::BigUint;
+use num_traits::Zero;
use crate::tools::powm;
use crate::types::{SrpAuthError, SrpGroup};
//! they are provided only for compatibility with the legacy software.
use crate::types::SrpGroup;
use lazy_static::lazy_static;
-use num::BigUint;
+use num_bigint::BigUint;
lazy_static! {
pub static ref G_1024: SrpGroup = SrpGroup {
use digest::Digest;
use generic_array::GenericArray;
-use num::{BigUint, Zero};
+use num_bigint::BigUint;
+use num_traits::Zero;
use crate::tools::powm;
use crate::types::{SrpAuthError, SrpGroup};
-use num::BigUint;
+use num_bigint::BigUint;
pub fn powm(base: &BigUint, exp: &BigUint, modulus: &BigUint) -> BigUint {
let zero = BigUint::new(vec![0]);
//! Additional SRP types.
use crate::tools::powm;
use digest::Digest;
-use num::BigUint;
+use num_bigint::BigUint;
use std::{error, fmt};
/// SRP authentication error.