Skip to content

Commit 0b906f3

Browse files
Make SigningKey::from use Self::new()
This matches #472.
1 parent e19c6c1 commit 0b906f3

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
##
8+
79
## 0.9.6 (2023-12-01)
810
### Added
911
- expose a `pss::get_default_pss_signature_algo_id` helper ([#393])

src/pkcs1v15/signing_key.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -197,10 +197,10 @@ where
197197

198198
impl<D> From<RsaPrivateKey> for SigningKey<D>
199199
where
200-
D: Digest,
200+
D: Digest + AssociatedOid,
201201
{
202202
fn from(key: RsaPrivateKey) -> Self {
203-
Self::new_unprefixed(key)
203+
Self::new(key)
204204
}
205205
}
206206

tests/pkcs1v15.rs

+44
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
use pkcs1::DecodeRsaPrivateKey;
2+
use rsa::RsaPrivateKey;
3+
use signature::Signer;
4+
15
// simple but prevent regression - see https://github.com/RustCrypto/RSA/issues/329
26
#[cfg(feature = "pem")]
37
#[test]
@@ -21,3 +25,43 @@ fn signature_stringify() {
2125
assert_eq!(format!("{:X}", signature), expected);
2226
assert_eq!(signature.to_string(), expected);
2327
}
28+
29+
#[test]
30+
fn new_vs_from() {
31+
let priv_key = RsaPrivateKey::from_pkcs1_pem(PRIV_KEY_PKCS1_PEM).unwrap();
32+
33+
let msg = b"1234";
34+
35+
let sig_via_new = rsa::pkcs1v15::SigningKey::<sha2::Sha256>::new(priv_key.clone()).sign(msg);
36+
let sig_via_from = rsa::pkcs1v15::SigningKey::<sha2::Sha256>::from(priv_key.clone()).sign(msg);
37+
assert_eq!(sig_via_new, sig_via_from);
38+
}
39+
40+
// randomly generated key, hardcoded for test repeatability
41+
const PRIV_KEY_PKCS1_PEM: &str = "-----BEGIN RSA PRIVATE KEY-----
42+
MIIEowIBAAKCAQEAwQe5brkkpxrwR/5TJ6JXsUyBzYtbEL/w8u8P6NnxQ8sL4KYp
43+
MzzTB6aq1gq7bieYXChg0PIWeTukGaOzZe96KxhT0GbhhYRlukktM/quRrM7nYdm
44+
UmXo7+KWU55kfcNOjWKADL/7qmxn6y/+kPmBg83nHdr1Mq6/pNkeHY/1CeGGECl0
45+
rg7gfEkssHjZw/uKafA271fX9A/q3LcAeWi7iA01PgmP28BrWb7OQoYVY71kFY11
46+
e919VlMh8oXsIV0nXCkYu9dR8Pzq6U4gFASK32fFkKX/djRMljEgss3kR0SWPH7t
47+
m5uXX1wRTJ2mRaZh/BmGweIvYCZ5y0+9ESOD1wIDAQABAoIBAAj3NuGxr8YjNi3h
48+
3jLlE3WkvBKz+lLY13QxLmf+V3pyn+abUSaUGKkuUJkIfpQrOqRtK7IIzIps/r5C
49+
ID8H1IDT7HCtlqQA9kikxXi4mAeoo4g5lcMWAK/Dsn/Hx5sfyzI99PyininYRyth
50+
W02YiS96DNYSKXllLHmXrBJrcVI4FqXAz5s7MezU0XYi+jeaVGEP2bd2cHfQJki/
51+
pLOKBvA5DGT7HbmMV7Z1qg/zcr/4Py+7qAFC5XsbQIILSMTfC45QFgs1lApnUG8H
52+
uIhf5lgZ8m0ouDBb/e1Q04ANtdLLI6EmrR11PwavUmvPvXuedXkv2OvnuAbiJr6g
53+
j0I0VaECgYEAyWf2QZrEoZLzVrInZ+VYtov1+jjgFcxW9lHuCJXtTx8hFla13Bmp
54+
bc8PoxWb+37jPdrOYPW0yv1sk5VeVkxOJbms0Gn8hpyI+0muQZ3jmwlS0A10T6FL
55+
wWECYvrxO8DCaVCQ4V+egLSDb/GMkRgHJF3Dr7g3ep7krXf2eeWILQUCgYEA9VqJ
56+
ijMDKw/KX6swyMe3A1nA0MlLBeseXxrwNIJenwRXCzjG3BH6oHW2MGwH0EV7sSoG
57+
FR6j7LZbp9I9NvRcAYU/s1qiAX3iX3KIsbZYNtEC6tKn/HClaHLZOhyuE8tjshyD
58+
jhK/0rhw7R5VQ1GfJhmuzvwoMFTA0fqZBQpWZCsCgYBA5WO+3dyv50bLT5pM6uR7
59+
5Xs7xinGPFJlCh812wFdNj2WEhiFNCuYu1hhhyv8jHUyUBehvGol4iSjJUUBb5La
60+
qwpZGV2KDlRBDAu/Dt3w7b8mVL9+jQ144QZA2HT0ePbrsk8Mn5/V/tQ/NMjDU8ex
61+
WxkbvLL7qskqb/YWbvRC9QKBgQDUJYvFpmQ36LhozmIpSZ6yU/oHzfWD0Y/6VhWa
62+
oZtlTeBhwJ8aDKWz9vQonFCJQns4bgjCXDMLa4aG7p+lk9a2LdwtndF1Dr8dHrCZ
63+
UPynsUQffTRpb5FmZd/0gnX2gafbixIpV4brkjV6of7BbaL50702Fgw99hqftVp4
64+
ZD7c7wKBgD7uIs6rgpaJzKbf7ejjZSjfLOgHlJhtH6Nejp8KoJRsEQI1ofWyIn7D
65+
eMjIuecwLapPwjY2G0/sUW61bqrxgW10wDJHPNllGsZFanzpb7x5o/7eNhzc4qNf
66+
Rmb665iB5fwpqmbE/hYKIn7asYQE+V0dkgt8M3qvlJJ5JJbCrJx3
67+
-----END RSA PRIVATE KEY-----";

0 commit comments

Comments
 (0)