| 1234567891011121314151617181920212223 | 
							- import * as crypto from 'crypto';
 
- import { promisify } from 'util';
 
- import nodeDigest from './dsa_digest.js';
 
- import hmacDigest from './hmac_digest.js';
 
- import nodeKey from './node_key.js';
 
- import getSignKey from './get_sign_verify_key.js';
 
- let oneShotSign;
 
- if (crypto.sign.length > 3) {
 
-     oneShotSign = promisify(crypto.sign);
 
- }
 
- else {
 
-     oneShotSign = crypto.sign;
 
- }
 
- const sign = async (alg, key, data) => {
 
-     const keyObject = getSignKey(alg, key, 'sign');
 
-     if (alg.startsWith('HS')) {
 
-         const hmac = crypto.createHmac(hmacDigest(alg), keyObject);
 
-         hmac.update(data);
 
-         return hmac.digest();
 
-     }
 
-     return oneShotSign(nodeDigest(alg), data, nodeKey(alg, keyObject));
 
- };
 
- export default sign;
 
 
  |