1
+ use pkcs1:: DecodeRsaPrivateKey ;
2
+ use rsa:: RsaPrivateKey ;
3
+ use signature:: Signer ;
4
+
1
5
// simple but prevent regression - see https://github.com/RustCrypto/RSA/issues/329
2
6
#[ cfg( feature = "pem" ) ]
3
7
#[ test]
@@ -21,3 +25,43 @@ fn signature_stringify() {
21
25
assert_eq ! ( format!( "{:X}" , signature) , expected) ;
22
26
assert_eq ! ( signature. to_string( ) , expected) ;
23
27
}
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