Skip to content

Commit

Permalink
rename feature
Browse files Browse the repository at this point in the history
  • Loading branch information
Kiril Nikolov committed Mar 15, 2024
1 parent 819afd7 commit 87ce7c3
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 14 deletions.
19 changes: 17 additions & 2 deletions src/crypto/ecdsa.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(feature = "use_aws_lc_rs")]
#[cfg(feature = "fips")]
use aws_lc_rs as ring;

#[cfg(not(feature = "use_aws_lc_rs"))]
#[cfg(not(feature = "fips"))]
use ring;

use ring::{rand, signature};
Expand Down Expand Up @@ -32,6 +32,7 @@ pub(crate) fn alg_to_ec_signing(alg: Algorithm) -> &'static signature::EcdsaSign

/// The actual ECDSA signing + encoding
/// The key needs to be in PKCS8 format
#[cfg(not(feature = "fips"))]
pub fn sign(
alg: &'static signature::EcdsaSigningAlgorithm,
key: &[u8],
Expand All @@ -42,3 +43,17 @@ pub fn sign(
let out = signing_key.sign(&rng, message)?;
Ok(b64_encode(out))
}

/// The actual ECDSA signing + encoding
/// The key needs to be in PKCS8 format
#[cfg(feature = "fips")]
pub fn sign(
alg: &'static signature::EcdsaSigningAlgorithm,
key: &[u8],
message: &[u8],
) -> Result<String> {
let rng = rand::SystemRandom::new();
let signing_key = signature::EcdsaKeyPair::from_pkcs8(alg, key)?;
let out = signing_key.sign(&rng, message)?;
Ok(b64_encode(out))
}
4 changes: 2 additions & 2 deletions src/crypto/eddsa.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(feature = "use_aws_lc_rs")]
#[cfg(feature = "fips")]
use aws_lc_rs as ring;

#[cfg(not(feature = "use_aws_lc_rs"))]
#[cfg(not(feature = "fips"))]
use ring;

use crate::algorithms::Algorithm;
Expand Down
4 changes: 2 additions & 2 deletions src/crypto/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(feature = "use_aws_lc_rs")]
#[cfg(feature = "fips")]
use aws_lc_rs as ring;

#[cfg(not(feature = "use_aws_lc_rs"))]
#[cfg(not(feature = "fips"))]
use ring;

use ring::constant_time::verify_slices_are_equal;
Expand Down
19 changes: 13 additions & 6 deletions src/crypto/rsa.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(feature = "use_aws_lc_rs")]
#[cfg(feature = "fips")]
use aws_lc_rs as ring;

#[cfg(not(feature = "use_aws_lc_rs"))]
#[cfg(not(feature = "fips"))]
use ring;

use ring::{rand, signature};
Expand Down Expand Up @@ -47,10 +47,7 @@ pub(crate) fn sign(
let key_pair = signature::RsaKeyPair::from_der(key)
.map_err(|e| ErrorKind::InvalidRsaKey(e.to_string()))?;

#[cfg(feature = "use_aws_lc_rs")]
let mut signature = vec![0; key_pair.public_modulus_len()];
#[cfg(not(feature = "use_aws_lc_rs"))]
let mut signature = vec![0; key_pair.public().modulus_len()];
let mut signature = get_signature(&key_pair);

let rng = rand::SystemRandom::new();
key_pair.sign(alg, &rng, message, &mut signature).map_err(|_| ErrorKind::RsaFailedSigning)?;
Expand All @@ -70,3 +67,13 @@ pub(crate) fn verify_from_components(
let res = pubkey.verify(alg, message, &signature_bytes);
Ok(res.is_ok())
}

#[cfg(feature = "fips")]
fn get_signature(key_pair: &signature::RsaKeyPair) -> Vec<u8> {
vec![0; key_pair.public_modulus_len()]
}

#[cfg(not(feature = "fips"))]
fn get_signature(key_pair: &signature::RsaKeyPair) -> Vec<u8> {
vec![0; key_pair.public().modulus_len()]
}
4 changes: 2 additions & 2 deletions src/errors.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#[cfg(feature = "use_aws_lc_rs")]
#[cfg(feature = "fips")]
use aws_lc_rs as ring;

#[cfg(not(feature = "use_aws_lc_rs"))]
#[cfg(not(feature = "fips"))]
use ring;
use std::error::Error as StdError;
use std::fmt;
Expand Down

0 comments on commit 87ce7c3

Please sign in to comment.