diff options
-rw-r--r-- | license-generator/aquatic-prime/src/lib.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/license-generator/aquatic-prime/src/lib.rs b/license-generator/aquatic-prime/src/lib.rs index 26666a1..c7f43a4 100644 --- a/license-generator/aquatic-prime/src/lib.rs +++ b/license-generator/aquatic-prime/src/lib.rs @@ -5,7 +5,14 @@ extern crate error_chain; extern crate openssl; mod errors { - error_chain! {} + error_chain! { + errors { + PublicKeyIncorrectNumBits(bits: i32) { + description("public key has incorrect bit size") + display("public key has incorrect bit size: '{}'", bits) + } + } + } } use std::collections::HashMap; @@ -45,8 +52,11 @@ impl<'a> AquaticPrime<'a> { let rsa_e = BigNum::from_u32(3) .chain_err(|| "public exponent could not be converted to BigNum")?; - if public_key.num_bits() != 1024 { - // TODO: Return Err + let public_key_bit_size = public_key.num_bits(); + if public_key_bit_size != 1024 { + return Err( + ErrorKind::PublicKeyIncorrectNumBits(public_key_bit_size).into() + ); } let digest = sha1(data.as_bytes()); |