@@ -185,50 +185,54 @@ test_rsa('RSA_PKCS1_PADDING');
185
185
test_rsa ( 'RSA_PKCS1_OAEP_PADDING' ) ;
186
186
187
187
// Test RSA key signing/verification
188
- let rsaSign = crypto . createSign ( 'SHA1' ) ;
189
- let rsaVerify = crypto . createVerify ( 'SHA1' ) ;
190
- assert . ok ( rsaSign ) ;
191
- assert . ok ( rsaVerify ) ;
192
-
193
- const expectedSignature = fixtures . readKey (
194
- 'rsa_public_sha1_signature_signedby_rsa_private_pkcs8.sha1' ,
195
- 'hex'
196
- ) ;
197
-
198
- rsaSign . update ( rsaPubPem ) ;
199
- let rsaSignature = rsaSign . sign ( rsaKeyPem , 'hex' ) ;
200
- assert . strictEqual ( rsaSignature , expectedSignature ) ;
201
-
202
- rsaVerify . update ( rsaPubPem ) ;
203
- assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
204
-
205
- // Test RSA PKCS#8 key signing/verification
206
- rsaSign = crypto . createSign ( 'SHA1' ) ;
207
- rsaSign . update ( rsaPubPem ) ;
208
- rsaSignature = rsaSign . sign ( rsaPkcs8KeyPem , 'hex' ) ;
209
- assert . strictEqual ( rsaSignature , expectedSignature ) ;
210
-
211
- rsaVerify = crypto . createVerify ( 'SHA1' ) ;
212
- rsaVerify . update ( rsaPubPem ) ;
213
- assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
214
-
215
- // Test RSA key signing/verification with encrypted key
216
- rsaSign = crypto . createSign ( 'SHA1' ) ;
217
- rsaSign . update ( rsaPubPem ) ;
218
- const signOptions = { key : rsaKeyPemEncrypted , passphrase : 'password' } ;
219
- rsaSignature = rsaSign . sign ( signOptions , 'hex' ) ;
220
- assert . strictEqual ( rsaSignature , expectedSignature ) ;
221
-
222
- rsaVerify = crypto . createVerify ( 'SHA1' ) ;
223
- rsaVerify . update ( rsaPubPem ) ;
224
- assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
225
-
226
- rsaSign = crypto . createSign ( 'SHA1' ) ;
227
- rsaSign . update ( rsaPubPem ) ;
228
- assert . throws ( ( ) => {
229
- const signOptions = { key : rsaKeyPemEncrypted , passphrase : 'wrong' } ;
230
- rsaSign . sign ( signOptions , 'hex' ) ;
231
- } , decryptError ) ;
188
+ {
189
+ let rsaSign = crypto . createSign ( 'SHA1' ) ;
190
+ let rsaVerify = crypto . createVerify ( 'SHA1' ) ;
191
+ assert . ok ( rsaSign ) ;
192
+ assert . ok ( rsaVerify ) ;
193
+
194
+ // Expected signature was generated on unix, so Windows \r must be removed.
195
+ const input = rsaPubPem . replace ( / \r / g, '' ) ;
196
+ const expectedSignature = fixtures . readKey (
197
+ 'rsa_public_sha1_signature_signedby_rsa_private_pkcs8.sha1' ,
198
+ 'hex'
199
+ ) ;
200
+
201
+ rsaSign . update ( input ) ;
202
+ let rsaSignature = rsaSign . sign ( rsaKeyPem , 'hex' ) ;
203
+ assert . strictEqual ( rsaSignature , expectedSignature ) ;
204
+
205
+ rsaVerify . update ( input ) ;
206
+ assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
207
+
208
+ // Test RSA PKCS#8 key signing/verification
209
+ rsaSign = crypto . createSign ( 'SHA1' ) ;
210
+ rsaSign . update ( input ) ;
211
+ rsaSignature = rsaSign . sign ( rsaPkcs8KeyPem , 'hex' ) ;
212
+ assert . strictEqual ( rsaSignature , expectedSignature ) ;
213
+
214
+ rsaVerify = crypto . createVerify ( 'SHA1' ) ;
215
+ rsaVerify . update ( input ) ;
216
+ assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
217
+
218
+ // Test RSA key signing/verification with encrypted key
219
+ rsaSign = crypto . createSign ( 'SHA1' ) ;
220
+ rsaSign . update ( input ) ;
221
+ const signOptions = { key : rsaKeyPemEncrypted , passphrase : 'password' } ;
222
+ rsaSignature = rsaSign . sign ( signOptions , 'hex' ) ;
223
+ assert . strictEqual ( rsaSignature , expectedSignature ) ;
224
+
225
+ rsaVerify = crypto . createVerify ( 'SHA1' ) ;
226
+ rsaVerify . update ( input ) ;
227
+ assert . strictEqual ( rsaVerify . verify ( rsaPubPem , rsaSignature , 'hex' ) , true ) ;
228
+
229
+ rsaSign = crypto . createSign ( 'SHA1' ) ;
230
+ rsaSign . update ( input ) ;
231
+ assert . throws ( ( ) => {
232
+ const signOptions = { key : rsaKeyPemEncrypted , passphrase : 'wrong' } ;
233
+ rsaSign . sign ( signOptions , 'hex' ) ;
234
+ } , decryptError ) ;
235
+ }
232
236
233
237
//
234
238
// Test RSA signing and verification
0 commit comments