ssh2+1.11.0.patch 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. diff --git a/node_modules/ssh2/lib/protocol/keyParser.js b/node_modules/ssh2/lib/protocol/keyParser.js
  2. index 9860e3f..ee82e51 100644
  3. --- a/node_modules/ssh2/lib/protocol/keyParser.js
  4. +++ b/node_modules/ssh2/lib/protocol/keyParser.js
  5. @@ -15,6 +15,7 @@ const {
  6. sign: sign_,
  7. verify: verify_,
  8. } = require('crypto');
  9. +const { createVerify: createVerifyDSS } = require('browserify-sign')
  10. const supportedOpenSSLCiphers = getCiphers();
  11. const { Ber } = require('asn1');
  12. @@ -404,6 +405,17 @@ const BaseKey = {
  13. return new Error('No public key available');
  14. if (!algo || typeof algo !== 'string')
  15. algo = this[SYM_HASH_ALGO];
  16. +
  17. + if (algo === 'dss1') {
  18. + const verifier = createVerifyDSS('DSA-SHA1');
  19. + verifier.update(data);
  20. + try {
  21. + return verifier.verify(pem, signature);
  22. + } catch (ex) {
  23. + return ex;
  24. + }
  25. + }
  26. +
  27. try {
  28. return verify_(algo, data, pem, signature);
  29. } catch (ex) {
  30. @@ -1343,7 +1355,7 @@ function parseDER(data, baseType, comment, fullType) {
  31. return new Error('Malformed OpenSSH public key');
  32. pubPEM = genOpenSSLDSAPub(p, q, g, y);
  33. pubSSH = genOpenSSHDSAPub(p, q, g, y);
  34. - algo = 'sha1';
  35. + algo = 'dss1';
  36. break;
  37. }
  38. case 'ssh-ed25519': {