Line 0
Link Here
|
|
|
1 |
--- src/data_mgmt/data_import.c.orig 2017-02-21 05:12:00.000000000 +0300 |
2 |
+++ src/data_mgmt/data_import.c 2018-11-18 17:45:45.425118000 +0300 |
3 |
@@ -372,7 +372,7 @@ |
4 |
goto out; |
5 |
} |
6 |
|
7 |
- if ( EVP_PKEY_type( pKey->type ) != EVP_PKEY_RSA ) { |
8 |
+ if ( EVP_PKEY_base_id( pKey ) != EVP_PKEY_RSA ) { |
9 |
logError( TOKEN_RSA_KEY_ERROR ); |
10 |
|
11 |
X509_free( pX509 ); |
12 |
@@ -691,8 +691,16 @@ |
13 |
|
14 |
int rc = -1; |
15 |
|
16 |
- int nLen = BN_num_bytes( a_pRsa->n ); |
17 |
- int eLen = BN_num_bytes( a_pRsa->e ); |
18 |
+ const BIGNUM *rsa_n, *rsa_e; |
19 |
+ |
20 |
+#if OPENSSL_VERSION_NUMBER < 0x10100000L |
21 |
+ rsa_n = a_pRsa->n; |
22 |
+ rsa_e = a_pRsa->e; |
23 |
+#else |
24 |
+ RSA_get0_key(a_pRsa, &rsa_n, &rsa_e, NULL); |
25 |
+#endif |
26 |
+ int nLen = BN_num_bytes( rsa_n ); |
27 |
+ int eLen = BN_num_bytes( rsa_e ); |
28 |
|
29 |
CK_RV rv; |
30 |
|
31 |
@@ -732,8 +740,8 @@ |
32 |
} |
33 |
|
34 |
// Get binary representations of the RSA key information |
35 |
- BN_bn2bin( a_pRsa->n, n ); |
36 |
- BN_bn2bin( a_pRsa->e, e ); |
37 |
+ BN_bn2bin( rsa_n, n ); |
38 |
+ BN_bn2bin( rsa_e, e ); |
39 |
|
40 |
// Create the RSA public key object |
41 |
rv = createObject( a_hSession, tAttr, ulAttrCount, a_hObject ); |
42 |
@@ -760,15 +768,33 @@ |
43 |
|
44 |
int rc = -1; |
45 |
|
46 |
- int nLen = BN_num_bytes( a_pRsa->n ); |
47 |
- int eLen = BN_num_bytes( a_pRsa->e ); |
48 |
- int dLen = BN_num_bytes( a_pRsa->d ); |
49 |
- int pLen = BN_num_bytes( a_pRsa->p ); |
50 |
- int qLen = BN_num_bytes( a_pRsa->q ); |
51 |
- int dmp1Len = BN_num_bytes( a_pRsa->dmp1 ); |
52 |
- int dmq1Len = BN_num_bytes( a_pRsa->dmq1 ); |
53 |
- int iqmpLen = BN_num_bytes( a_pRsa->iqmp ); |
54 |
+ const BIGNUM *rsa_n, *rsa_e, *rsa_d; |
55 |
+ const BIGNUM *rsa_p, *rsa_q; |
56 |
+ const BIGNUM *rsa_dmp1, *rsa_dmq1, *rsa_iqmp; |
57 |
|
58 |
+#if OPENSSL_VERSION_NUMBER < 0x10100000L |
59 |
+ rsa_n = a_pRsa->n; |
60 |
+ rsa_e = a_pRsa->e; |
61 |
+ rsa_d = a_pRsa->d; |
62 |
+ rsa_p = a_pRsa->p; |
63 |
+ rsa_q = a_pRsa->q; |
64 |
+ rsa_dmp1 = a_pRsa->dmp1; |
65 |
+ rsa_dmq1 = a_pRsa->dmq1; |
66 |
+ rsa_iqmp = a_pRsa->iqmp; |
67 |
+#else |
68 |
+ RSA_get0_key(a_pRsa, &rsa_n, &rsa_e, &rsa_d); |
69 |
+ RSA_get0_factors(a_pRsa, &rsa_p, &rsa_q); |
70 |
+ RSA_get0_crt_params(a_pRsa, &rsa_dmp1, &rsa_dmq1, &rsa_iqmp); |
71 |
+#endif |
72 |
+ int nLen = BN_num_bytes( rsa_n ); |
73 |
+ int eLen = BN_num_bytes( rsa_e ); |
74 |
+ int dLen = BN_num_bytes( rsa_d ); |
75 |
+ int pLen = BN_num_bytes( rsa_p ); |
76 |
+ int qLen = BN_num_bytes( rsa_q ); |
77 |
+ int dmp1Len = BN_num_bytes( rsa_dmp1 ); |
78 |
+ int dmq1Len = BN_num_bytes( rsa_dmq1 ); |
79 |
+ int iqmpLen = BN_num_bytes( rsa_iqmp ); |
80 |
+ |
81 |
CK_RV rv; |
82 |
|
83 |
CK_BBOOL bTrue = TRUE; |
84 |
@@ -821,14 +847,14 @@ |
85 |
} |
86 |
|
87 |
// Get binary representations of the RSA key information |
88 |
- BN_bn2bin( a_pRsa->n, n ); |
89 |
- BN_bn2bin( a_pRsa->e, e ); |
90 |
- BN_bn2bin( a_pRsa->d, d ); |
91 |
- BN_bn2bin( a_pRsa->p, p ); |
92 |
- BN_bn2bin( a_pRsa->q, q ); |
93 |
- BN_bn2bin( a_pRsa->dmp1, dmp1 ); |
94 |
- BN_bn2bin( a_pRsa->dmq1, dmq1 ); |
95 |
- BN_bn2bin( a_pRsa->iqmp, iqmp ); |
96 |
+ BN_bn2bin( rsa_n, n ); |
97 |
+ BN_bn2bin( rsa_e, e ); |
98 |
+ BN_bn2bin( rsa_d, d ); |
99 |
+ BN_bn2bin( rsa_p, p ); |
100 |
+ BN_bn2bin( rsa_q, q ); |
101 |
+ BN_bn2bin( rsa_dmp1, dmp1 ); |
102 |
+ BN_bn2bin( rsa_dmq1, dmq1 ); |
103 |
+ BN_bn2bin( rsa_iqmp, iqmp ); |
104 |
|
105 |
// Create the RSA private key object |
106 |
rv = createObject( a_hSession, tAttr, ulAttrCount, a_hObject ); |