@@ -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,
@@ -162,18 +161,6 @@ function signOneShot(algorithm, data, key, callback) {
162161 // Options specific to (EC)DSA
163162 const dsaSigEnc = getDSASignatureEncoding ( key ) ;
164163
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-
177164 let keyData ;
178165 if ( isKeyObject ( key ) || isCryptoKey ( key ) ) {
179166 ( { data : keyData } = preparePrivateKey ( key ) ) ;
@@ -184,7 +171,7 @@ function signOneShot(algorithm, data, key, callback) {
184171 }
185172
186173 const job = new SignJob (
187- kCryptoJobAsync ,
174+ callback ? kCryptoJobAsync : kCryptoJobSync ,
188175 kSignJobModeSign ,
189176 keyData ,
190177 data ,
@@ -194,6 +181,14 @@ function signOneShot(algorithm, data, key, callback) {
194181 undefined ,
195182 dsaSigEnc ) ;
196183
184+ if ( ! callback ) {
185+ const { 0 : err , 1 : signature } = job . run ( ) ;
186+ if ( err !== undefined )
187+ throw err ;
188+
189+ return Buffer . from ( signature ) ;
190+ }
191+
197192 job . ondone = ( error , signature ) => {
198193 if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
199194 FunctionPrototypeCall ( callback , job , null , Buffer . from ( signature ) ) ;
@@ -272,19 +267,6 @@ function verifyOneShot(algorithm, data, key, signature, callback) {
272267 ) ;
273268 }
274269
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-
288270 let keyData ;
289271 if ( isKeyObject ( key ) || isCryptoKey ( key ) ) {
290272 ( { data : keyData } = preparePublicOrPrivateKey ( key ) ) ;
@@ -295,7 +277,7 @@ function verifyOneShot(algorithm, data, key, signature, callback) {
295277 }
296278
297279 const job = new SignJob (
298- kCryptoJobAsync ,
280+ callback ? kCryptoJobAsync : kCryptoJobSync ,
299281 kSignJobModeVerify ,
300282 keyData ,
301283 data ,
@@ -305,6 +287,14 @@ function verifyOneShot(algorithm, data, key, signature, callback) {
305287 signature ,
306288 dsaSigEnc ) ;
307289
290+ if ( ! callback ) {
291+ const { 0 : err , 1 : result } = job . run ( ) ;
292+ if ( err !== undefined )
293+ throw err ;
294+
295+ return result ;
296+ }
297+
308298 job . ondone = ( error , result ) => {
309299 if ( error ) return FunctionPrototypeCall ( callback , job , error ) ;
310300 FunctionPrototypeCall ( callback , job , null , result ) ;
0 commit comments