Files
codeql/javascript/ql/test/query-tests/Security/CWE-326/tst.js
2025-02-28 13:28:15 +01:00

44 lines
1.6 KiB
JavaScript

const crypto = require("crypto");
const bad1 = crypto.generateKeyPairSync("rsa", { modulusLength: 1024 }); // $ Alert
const good1 = crypto.generateKeyPairSync("rsa", { modulusLength: 4096 });
const bad2 = crypto.generateKeySync("hmac", { length: 64 }); // $ Alert
const good2 = crypto.generateKeySync("aes", { length: 256 });
var CryptoJS = require("crypto-js");
const bad3 = CryptoJS.algo.PBKDF2.create({ keySize: 2 }); // $ Alert
const bad4 = CryptoJS.PBKDF2(password, salt, { keySize: 2 }); // $ Alert
const bad5 = CryptoJS.EvpKDF(password, salt, { keySize: 2 }); // $ Alert
const bad6 = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
const forge = require("node-forge");
var bad7 = forge.rc2.createEncryptionCipher(password, 64); // $ Alert
var good3 = forge.rc2.createEncryptionCipher(password, 128);
var key1 = forge.random.getBytesSync(16);
var good4 = forge.cipher.createCipher('AES-CBC', key1);
var key2 = forge.random.getBytesSync(8);
var bad8 = forge.cipher.createCipher('AES-CBC', key2); // $ Alert
var myBuffer = forge.util.createBuffer(manyBytes);
var key3 = myBuffer.getBytes(8);
var bad9 = forge.cipher.createDecipher('3DES-CBC', key3); // $ Alert
var key4 = myBuffer.getBytes(16);
var good5 = forge.cipher.createDecipher('AES-CBC', key4);
var bad10 = crypto.createDiffieHellman(512); // $ Alert
var good6 = crypto.createDiffieHellman(2048);
const NodeRSA = require('node-rsa');
var bad11 = new NodeRSA({b: 512}); // $ Alert
var good7 = new NodeRSA({b: 4096});
var key = new NodeRSA();
key.generateKeyPair(512, 65537); // $ Alert
key.generateKeyPair(4096, 65537);