@@ -24,9 +24,8 @@ const {
24
24
Sign : _Sign ,
25
25
SignJob,
26
26
Verify : _Verify ,
27
- signOneShot : _signOneShot ,
28
- verifyOneShot : _verifyOneShot ,
29
27
kCryptoJobAsync,
28
+ kCryptoJobSync,
30
29
kSigEncDER,
31
30
kSigEncP1363,
32
31
kSignJobModeSign,
@@ -40,10 +39,6 @@ const {
40
39
} = require ( 'internal/crypto/util' ) ;
41
40
42
41
const {
43
- createPrivateKey,
44
- createPublicKey,
45
- isCryptoKey,
46
- isKeyObject,
47
42
preparePrivateKey,
48
43
preparePublicOrPrivateKey,
49
44
} = require ( 'internal/crypto/keys' ) ;
@@ -162,38 +157,34 @@ function signOneShot(algorithm, data, key, callback) {
162
157
// Options specific to (EC)DSA
163
158
const dsaSigEnc = getDSASignatureEncoding ( key ) ;
164
159
165
- if ( ! callback ) {
166
- const {
167
- data : keyData ,
168
- format : keyFormat ,
169
- type : keyType ,
170
- passphrase : keyPassphrase
171
- } = preparePrivateKey ( key ) ;
172
-
173
- return _signOneShot ( keyData , keyFormat , keyType , keyPassphrase , data ,
174
- algorithm , rsaPadding , pssSaltLength , dsaSigEnc ) ;
175
- }
176
-
177
- let keyData ;
178
- if ( isKeyObject ( key ) || isCryptoKey ( key ) ) {
179
- ( { data : keyData } = preparePrivateKey ( key ) ) ;
180
- } else if ( isKeyObject ( key . key ) || isCryptoKey ( key . key ) ) {
181
- ( { data : keyData } = preparePrivateKey ( key . key ) ) ;
182
- } else {
183
- keyData = createPrivateKey ( key ) [ kHandle ] ;
184
- }
160
+ const {
161
+ data : keyData ,
162
+ format : keyFormat ,
163
+ type : keyType ,
164
+ passphrase : keyPassphrase
165
+ } = preparePrivateKey ( key ) ;
185
166
186
167
const job = new SignJob (
187
- kCryptoJobAsync ,
168
+ callback ? kCryptoJobAsync : kCryptoJobSync ,
188
169
kSignJobModeSign ,
189
170
keyData ,
171
+ keyFormat ,
172
+ keyType ,
173
+ keyPassphrase ,
190
174
data ,
191
175
algorithm ,
192
176
pssSaltLength ,
193
177
rsaPadding ,
194
- undefined ,
195
178
dsaSigEnc ) ;
196
179
180
+ if ( ! callback ) {
181
+ const { 0 : err , 1 : signature } = job . run ( ) ;
182
+ if ( err !== undefined )
183
+ throw err ;
184
+
185
+ return Buffer . from ( signature ) ;
186
+ }
187
+
197
188
job . ondone = ( error , signature ) => {
198
189
if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
199
190
FunctionPrototypeCall ( callback , job , null , Buffer . from ( signature ) ) ;
@@ -272,38 +263,34 @@ function verifyOneShot(algorithm, data, key, signature, callback) {
272
263
) ;
273
264
}
274
265
275
- if ( ! callback ) {
276
- const {
277
- data : keyData ,
278
- format : keyFormat ,
279
- type : keyType ,
280
- passphrase : keyPassphrase
281
- } = preparePublicOrPrivateKey ( key ) ;
282
-
283
- return _verifyOneShot ( keyData , keyFormat , keyType , keyPassphrase ,
284
- signature , data , algorithm , rsaPadding ,
285
- pssSaltLength , dsaSigEnc ) ;
286
- }
287
-
288
- let keyData ;
289
- if ( isKeyObject ( key ) || isCryptoKey ( key ) ) {
290
- ( { data : keyData } = preparePublicOrPrivateKey ( key ) ) ;
291
- } else if ( key != null && ( isKeyObject ( key . key ) || isCryptoKey ( key . key ) ) ) {
292
- ( { data : keyData } = preparePublicOrPrivateKey ( key . key ) ) ;
293
- } else {
294
- keyData = createPublicKey ( key ) [ kHandle ] ;
295
- }
266
+ const {
267
+ data : keyData ,
268
+ format : keyFormat ,
269
+ type : keyType ,
270
+ passphrase : keyPassphrase
271
+ } = preparePublicOrPrivateKey ( key ) ;
296
272
297
273
const job = new SignJob (
298
- kCryptoJobAsync ,
274
+ callback ? kCryptoJobAsync : kCryptoJobSync ,
299
275
kSignJobModeVerify ,
300
276
keyData ,
277
+ keyFormat ,
278
+ keyType ,
279
+ keyPassphrase ,
301
280
data ,
302
281
algorithm ,
303
282
pssSaltLength ,
304
283
rsaPadding ,
305
- signature ,
306
- dsaSigEnc ) ;
284
+ dsaSigEnc ,
285
+ signature ) ;
286
+
287
+ if ( ! callback ) {
288
+ const { 0 : err , 1 : result } = job . run ( ) ;
289
+ if ( err !== undefined )
290
+ throw err ;
291
+
292
+ return result ;
293
+ }
307
294
308
295
job . ondone = ( error , result ) => {
309
296
if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
0 commit comments