Skip to content

Commit 9f1464c

Browse files
committed
Revert changes in key and hash
Modify oaep methods signatures
1 parent fb55129 commit 9f1464c

File tree

5 files changed

+81
-131
lines changed

5 files changed

+81
-131
lines changed

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ rand = "0.6.5"
2121
byteorder = "1.3.1"
2222
failure = "0.1.5"
2323
subtle = "2.0.0"
24-
sha-1 = "0.8.1"
25-
sha2 = "0.8.0"
26-
sha3 = "0.8.1"
2724
digest = "0.8.0"
2825

2926
[dependencies.zeroize]
@@ -40,6 +37,9 @@ features = ["std", "derive"]
4037
base64 = "0.10.1"
4138
hex = "0.3.2"
4239
serde_test = "1.0.89"
40+
sha-1 = "0.8.1"
41+
sha2 = "0.8.0"
42+
sha3 = "0.8.1"
4343

4444

4545
[[bench]]

src/hash.rs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
use sha1::{Digest, Sha1};
2-
use sha2::{Sha224, Sha256, Sha384, Sha512};
3-
use sha3::{Sha3_256, Sha3_384, Sha3_512};
4-
51
/// A generic trait that exposes the information that is needed for a hash function to be
62
/// used in `sign` and `verify.`.
73
pub trait Hash {
@@ -11,7 +7,6 @@ pub trait Hash {
117
/// Returns the ASN1 DER prefix for the the hash function.
128
fn asn1_prefix(&self) -> Vec<u8>;
139

14-
fn digest(&self, msg: &[u8]) -> Vec<u8>;
1510
}
1611

1712
/// A list of provided hashes, implementing `Hash`.
@@ -30,12 +25,6 @@ pub enum Hashes {
3025
RIPEMD160,
3126
}
3227

33-
fn digest<H: Digest>(msg: &[u8], hasher: &mut H) -> Vec<u8> {
34-
hasher.input(msg);
35-
let res = hasher.result_reset();
36-
res.iter().cloned().collect()
37-
}
38-
3928
impl Hash for Hashes {
4029
fn size(&self) -> usize {
4130
match *self {
@@ -102,20 +91,4 @@ impl Hash for Hashes {
10291
],
10392
}
10493
}
105-
106-
fn digest(&self, msg: &[u8]) -> Vec<u8> {
107-
match *self {
108-
Hashes::MD5 => panic!("Not implemented"),
109-
Hashes::SHA1 => digest(msg, &mut Sha1::new()),
110-
Hashes::SHA2_224 => digest(msg, &mut Sha224::new()),
111-
Hashes::SHA2_256 => digest(msg, &mut Sha256::new()),
112-
Hashes::SHA2_384 => digest(msg, &mut Sha384::new()),
113-
Hashes::SHA2_512 => digest(msg, &mut Sha512::new()),
114-
Hashes::SHA3_256 => digest(msg, &mut Sha3_256::new()),
115-
Hashes::SHA3_384 => digest(msg, &mut Sha3_384::new()),
116-
Hashes::SHA3_512 => digest(msg, &mut Sha3_512::new()),
117-
Hashes::MD5SHA1 => panic!("Not implemented"),
118-
Hashes::RIPEMD160 => panic!("Not implemented"),
119-
}
120-
}
12194
}

src/key.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use zeroize::{Zeroize, ZeroizeOnDrop};
1010
use crate::algorithms::generate_multi_prime_key;
1111
use crate::errors::{Error, Result};
1212
use crate::hash::Hash;
13-
use crate::oaep;
1413
use crate::padding::PaddingScheme;
1514
use crate::pkcs1v15;
1615

@@ -153,7 +152,7 @@ impl PublicKey for RSAPublicKey {
153152
fn encrypt<R: Rng>(&self, rng: &mut R, padding: PaddingScheme, msg: &[u8]) -> Result<Vec<u8>> {
154153
match padding {
155154
PaddingScheme::PKCS1v15 => pkcs1v15::encrypt(rng, self, msg),
156-
PaddingScheme::OAEP => oaep::encrypt(rng, self, msg, oaep::OaepOptions::new()),
155+
PaddingScheme::OAEP => unimplemented!("not yet implemented"),
157156
_ => Err(Error::InvalidPaddingScheme),
158157
}
159158
}
@@ -219,7 +218,7 @@ impl PublicKey for RSAPrivateKey {
219218
fn encrypt<R: Rng>(&self, rng: &mut R, padding: PaddingScheme, msg: &[u8]) -> Result<Vec<u8>> {
220219
match padding {
221220
PaddingScheme::PKCS1v15 => pkcs1v15::encrypt(rng, self, msg),
222-
PaddingScheme::OAEP => oaep::encrypt(rng, self, msg, oaep::OaepOptions::new()),
221+
PaddingScheme::OAEP => unimplemented!("not yet implemented"),
223222
_ => Err(Error::InvalidPaddingScheme),
224223
}
225224
}
@@ -393,9 +392,7 @@ impl RSAPrivateKey {
393392
match padding {
394393
// need to pass any Rng as the type arg, so the type checker is happy, it is not actually used for anything
395394
PaddingScheme::PKCS1v15 => pkcs1v15::decrypt::<ThreadRng>(None, self, ciphertext),
396-
PaddingScheme::OAEP => {
397-
oaep::decrypt::<ThreadRng>(None, self, ciphertext, oaep::OaepOptions::new())
398-
}
395+
PaddingScheme::OAEP => unimplemented!("not yet implemented"),
399396
_ => Err(Error::InvalidPaddingScheme),
400397
}
401398
}
@@ -410,9 +407,7 @@ impl RSAPrivateKey {
410407
) -> Result<Vec<u8>> {
411408
match padding {
412409
PaddingScheme::PKCS1v15 => pkcs1v15::decrypt(Some(rng), self, ciphertext),
413-
PaddingScheme::OAEP => {
414-
oaep::decrypt(Some(rng), self, ciphertext, oaep::OaepOptions::new())
415-
}
410+
PaddingScheme::OAEP => unimplemented!("not yet implemented"),
416411
_ => Err(Error::InvalidPaddingScheme),
417412
}
418413
}

src/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ extern crate hex;
4646
#[cfg(all(test, feature = "serde1"))]
4747
extern crate serde_test;
4848

49-
extern crate digest;
50-
extern crate sha1;
51-
extern crate sha2;
52-
extern crate sha3;
5349

5450
/// Useful algorithms.
5551
pub mod algorithms;

0 commit comments

Comments
 (0)