@@ -24,9 +24,8 @@ const {
2424 Sign : _Sign ,
2525 SignJob,
2626 Verify : _Verify ,
27- signOneShot : _signOneShot ,
28- verifyOneShot : _verifyOneShot ,
2927 kCryptoJobAsync,
28+ kCryptoJobSync,
3029 kSigEncDER,
3130 kSigEncP1363,
3231 kSignJobModeSign,
@@ -40,10 +39,6 @@ const {
4039} = require ( 'internal/crypto/util' ) ;
4140
4241const {
43- createPrivateKey,
44- createPublicKey,
45- isCryptoKey,
46- isKeyObject,
4742 preparePrivateKey,
4843 preparePublicOrPrivateKey,
4944} = require ( 'internal/crypto/keys' ) ;
@@ -162,38 +157,34 @@ function signOneShot(algorithm, data, key, callback) {
162157 // Options specific to (EC)DSA
163158 const dsaSigEnc = getDSASignatureEncoding ( key ) ;
164159
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 ) ;
185166
186167 const job = new SignJob (
187- kCryptoJobAsync ,
168+ callback ? kCryptoJobAsync : kCryptoJobSync ,
188169 kSignJobModeSign ,
189170 keyData ,
171+ keyFormat ,
172+ keyType ,
173+ keyPassphrase ,
190174 data ,
191175 algorithm ,
192176 pssSaltLength ,
193177 rsaPadding ,
194- undefined ,
195178 dsaSigEnc ) ;
196179
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+
197188 job . ondone = ( error , signature ) => {
198189 if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
199190 FunctionPrototypeCall ( callback , job , null , Buffer . from ( signature ) ) ;
@@ -272,38 +263,34 @@ function verifyOneShot(algorithm, data, key, signature, callback) {
272263 ) ;
273264 }
274265
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 ) ;
296272
297273 const job = new SignJob (
298- kCryptoJobAsync ,
274+ callback ? kCryptoJobAsync : kCryptoJobSync ,
299275 kSignJobModeVerify ,
300276 keyData ,
277+ keyFormat ,
278+ keyType ,
279+ keyPassphrase ,
301280 data ,
302281 algorithm ,
303282 pssSaltLength ,
304283 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+ }
307294
308295 job . ondone = ( error , result ) => {
309296 if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
0 commit comments