mirror of
https://github.com/github/codeql.git
synced 2026-05-01 19:55:15 +02:00
add support for node-rsa
This commit is contained in:
@@ -689,3 +689,28 @@ private module ExpressJwt {
|
||||
Key() { this = DataFlow::moduleMember("express-jwt", "sign").getACall().getArgument(1) }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides classes for working with the `node-rsa` package (https://www.npmjs.com/package/node-rsa)
|
||||
*/
|
||||
private module NodeRsa {
|
||||
private class CreateKey extends CryptographicKeyCreation, API::InvokeNode {
|
||||
CryptographicAlgorithm algorithm;
|
||||
|
||||
CreateKey() {
|
||||
this = API::moduleImport("node-rsa").getAnInstantiation()
|
||||
or
|
||||
this = API::moduleImport("node-rsa").getInstance().getMember("generateKeyPair").getACall()
|
||||
}
|
||||
|
||||
override CryptographicAlgorithm getAlgorithm() { result.matchesName("rsa") }
|
||||
|
||||
override int getSize() {
|
||||
result = this.getArgument(0).getIntValue()
|
||||
or
|
||||
result = this.getOptionArgument(0, "b").getIntValue()
|
||||
}
|
||||
|
||||
override predicate isSymmetricKey() { none() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,3 +6,6 @@
|
||||
| tst.js:19:12:19:57 | forge.r ... rd, 64) | Creation of an symmetric RC2 key uses 64 bits, which is below 128 and considered breakable. |
|
||||
| tst.js:26:12:26:53 | forge.c ... , key2) | Creation of an symmetric AESCBC key uses 64 bits, which is below 128 and considered breakable. |
|
||||
| tst.js:30:12:30:56 | forge.c ... , key3) | Creation of an symmetric 3DESCBC key uses 64 bits, which is below 128 and considered breakable. |
|
||||
| tst.js:35:13:35:43 | crypto. ... an(512) | Creation of an asymmetric key uses 512 bits, which is below 2048 and considered breakable. |
|
||||
| tst.js:39:13:39:33 | new Nod ... : 512}) | Creation of an asymmetric RSA key uses 512 bits, which is below 2048 and considered breakable. |
|
||||
| tst.js:43:1:43:31 | key.gen ... 65537) | Creation of an asymmetric RSA key uses 512 bits, which is below 2048 and considered breakable. |
|
||||
|
||||
@@ -33,4 +33,12 @@ var key4 = myBuffer.getBytes(16);
|
||||
var good5 = forge.cipher.createDecipher('AES-CBC', key4); // OK
|
||||
|
||||
var bad10 = crypto.createDiffieHellman(512);
|
||||
var good6 = crypto.createDiffieHellman(2048);
|
||||
var good6 = crypto.createDiffieHellman(2048);
|
||||
|
||||
const NodeRSA = require('node-rsa');
|
||||
var bad11 = new NodeRSA({b: 512}); // NOT OK
|
||||
var good7 = new NodeRSA({b: 4096}); // OK
|
||||
|
||||
var key = new NodeRSA(); // OK
|
||||
key.generateKeyPair(512, 65537); // NOT OK
|
||||
key.generateKeyPair(4096, 65537); // OK
|
||||
Reference in New Issue
Block a user