sign.js 948 B

12345678910111213141516171819202122232425
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. const crypto = require("crypto");
  4. const util_1 = require("util");
  5. const dsa_digest_js_1 = require("./dsa_digest.js");
  6. const hmac_digest_js_1 = require("./hmac_digest.js");
  7. const node_key_js_1 = require("./node_key.js");
  8. const get_sign_verify_key_js_1 = require("./get_sign_verify_key.js");
  9. let oneShotSign;
  10. if (crypto.sign.length > 3) {
  11. oneShotSign = (0, util_1.promisify)(crypto.sign);
  12. }
  13. else {
  14. oneShotSign = crypto.sign;
  15. }
  16. const sign = async (alg, key, data) => {
  17. const keyObject = (0, get_sign_verify_key_js_1.default)(alg, key, 'sign');
  18. if (alg.startsWith('HS')) {
  19. const hmac = crypto.createHmac((0, hmac_digest_js_1.default)(alg), keyObject);
  20. hmac.update(data);
  21. return hmac.digest();
  22. }
  23. return oneShotSign((0, dsa_digest_js_1.default)(alg), data, (0, node_key_js_1.default)(alg, keyObject));
  24. };
  25. exports.default = sign;