diff --git a/src/x509.rs b/src/x509.rs index 8bb8381..4b24789 100644 --- a/src/x509.rs +++ b/src/x509.rs @@ -68,12 +68,18 @@ impl X509PublicKeyAlgo { println!("{:?}", d); println!("{:?}", d.as_ref().unwrap().1.content); if let BerObjectContent::Sequence(seq) = &d.as_ref().unwrap().1.content { - println!("||| {:?}", &seq[0].content); - if let BerObjectContent::Integer(int) = seq[0].content { - println!(">>> {:?}", int); - println!(">>> {:?}", int.len()); - println!(">>> {:?}", int.len() * 8); + let mut rsa_n_len = 0; + if let BerObjectContent::Integer(n) = seq[0].content { + rsa_n_len = n.len() - (if n[0] == 0 { 1 } else { 0 }); } + let rsa_bit_length = || -> Option { + for bit_len in &[1024, 2048, 3072, 4096] { + if i32::abs(bit_len - (rsa_n_len as i32 * 8)) <= 16 { + return Some(*bit_len); + } + } + None + }; } Ok(Self::Rsa) } else {