Skip to content

Instantly share code, notes, and snippets.

@sluggoman
Created February 9, 2015 15:51
Show Gist options
  • Save sluggoman/999911c2c5a5436c867a to your computer and use it in GitHub Desktop.
Save sluggoman/999911c2c5a5436c867a to your computer and use it in GitHub Desktop.
var goodkey= "-----BEGIN RSA PRIVATE KEY-----\n" +
"MIIEogIBAAKCAQEAvef4Qh4bmeqXsDp4noBU96rwPOJv2rN/yhM7Iv/fYSSXlj3L\n" +
"/aFwP0hV6l5EDMgE8hi9SeIdAuyV4YkzI5kajjUwzwB9YBlYUoDhJIKiv6IJDxfg\n" +
"TAvA7F8BIu+s/zF/j1VQ/Jen0Qu0PKsSUuRofzW8Vp/vSEhTA8yVY6KyQvtJuRzi\n" +
"wjyt6R0md3EopsJjz/QUh0ivqo5fiBpKq3TXYc8saElL2xTHc8i219XrimDEUkTB\n" +
"sny6x+aHBaEp9Kdie9uqVi1YKMXS3M4FnftL+V577UDfmYJ3WVYAiC85/5u2wTA5\n" +
"7BCwk11KlS3DX9tHyJA6wNh10rFwoo/cduB5zQIDAQABAoIBAFKO5QuBYUhxhw5S\n" +
"7Rsi+U1OX/BoFG6EeHqWD7BwgmEN8mSbavJRW6X3QXqJDpZr4lKJVMko5qndxm7t\n" +
"IXFJXxURpK1pLhg4DICZjMc9j5k1zTBlldoZhf58ctcIUTIEB8t9MJ8PIyKrLujt\n" +
"CiNFLvSWnNEf6HuJDaXqK8vL8ClTqvNXQT5hbNoMXZOHIOO28gl6WqmdSJyvnqit\n" +
"r8CssLtcdYB9iOXCLAd2X0O9yN78nty3T7K1BDNMu4UsC790ex7K0jFZ4eVLIVBb\n" +
"fwHaTmUOhpoXUsiS83W6a1NvJfMQjBxvZtxsAN46KxloSn1F8Y1m1zwyUsNrqWOz\n" +
"TG4OIbUCgYEA7pcUd92of+7lSt4qfu7Z6AUTkjiwu8Cstij0+1l+aEMgYfZ8Y5Cz\n" +
"M4vPRr9jUyR9AHPU0Uo+FQikNzmZYw75Cy32gIEWZ8hgCermRwMVzarvYsd+VpsY\n" +
"BpBbO751n4Iel+FwzjpnwFTkYQ84b2JgCDq/zW8A4BEsoB8kkc6SUXMCgYEAy8N1\n" +
"+FDRkvMr+UBMHQBJQeV85+CGMiDHkLIDlYvFIMtqEo+as/wJquTRId5W3HayX9LY\n" +
"PJWYl1Baqdk063Z8Z5L+G1HQVI+ddhrqdG/z8tC/l3ByQvs4KuQwKKktD6EqNjMy\n" +
"0zus3Meh6wush7jwDwMmSzPDadH1RGS4GxFyN78CgYAq+vBm/3lBQqnvqMIDB8gd\n" +
"cfyqlKfRys3SKuKm/OI2qhEFVL/nt8Nwf7khR4z/B021bShjY3p3k4zxneCx5Zqb\n" +
"lvYXBCojHAehAb3mAPpGiIqDQujRdTMIy6yDwLWzvF8CgUwu+nqCPUi+610BQ7mF\n" +
"AgBXY63Gr5FYbwPJeGsHXQKBgDf251/cUrNZtqouzrjoazZ+IWBOeo0qE6XaPsHE\n" +
"MdBgDjIq3wKwJreZQRdcSd8jerp23o1FSTPGDiC4V6CUWnbYGJLIVb/j8guOOPbi\n" +
"CM6YJwchC0D6XuLo6ZFBZe71BPL9/OenbEL3UbGM80YTtVtqMgpVnUZjNEokn6xP\n" +
"jl9hAoGAXXUAdYoumh+EBqVPfy+4cg9DDhXSNAOnqMU2wT5IBayeKoXcUCRA3xju\n" +
"uFUF2qNjMY9i34RxP0s3Qhk2iVeU0lWen/kfr9RDasYnmYwT6TKKLrteNrN3YaXD\n" +
"XctlclkiOWmdaoAYpaC4c+iHNGMmCSCvmCo+qhG4fmDH1a5aIag=\n" +
"-----END RSA PRIVATE KEY-----";
var badkey= "-----BEGIN RSA PRIVATE KEY-----" +
"MIIEogIBAAKCAQEAvef4Qh4bmeqXsDp4noBU96rwPOJv2rN/yhM7Iv/fYSSXlj3L\\n" +
"/aFwP0hV6l5EDMgE8hi9SeIdAuyV4YkzI5kajjUwzwB9YBlYUoDhJIKiv6IJDxfg\\n" +
"TAvA7F8BIu+s/zF/j1VQ/Jen0Qu0PKsSUuRofzW8Vp/vSEhTA8yVY6KyQvtJuRzi\\n" +
"wjyt6R0md3EopsJjz/QUh0ivqo5fiBpKq3TXYc8saElL2xTHc8i219XrimDEUkTB\\n" +
"sny6x+aHBaEp9Kdie9uqVi1YKMXS3M4FnftL+V577UDfmYJ3WVYAiC85/5u2wTA5\\n" +
"7BCwk11KlS3DX9tHyJA6wNh10rFwoo/cduB5zQIDAQABAoIBAFKO5QuBYUhxhw5S\\n" +
"7Rsi+U1OX/BoFG6EeHqWD7BwgmEN8mSbavJRW6X3QXqJDpZr4lKJVMko5qndxm7t\\n" +
"IXFJXxURpK1pLhg4DICZjMc9j5k1zTBlldoZhf58ctcIUTIEB8t9MJ8PIyKrLujt\\n" +
"CiNFLvSWnNEf6HuJDaXqK8vL8ClTqvNXQT5hbNoMXZOHIOO28gl6WqmdSJyvnqit\\n" +
"r8CssLtcdYB9iOXCLAd2X0O9yN78nty3T7K1BDNMu4UsC790ex7K0jFZ4eVLIVBb\\n" +
"fwHaTmUOhpoXUsiS83W6a1NvJfMQjBxvZtxsAN46KxloSn1F8Y1m1zwyUsNrqWOz\\n" +
"TG4OIbUCgYEA7pcUd92of+7lSt4qfu7Z6AUTkjiwu8Cstij0+1l+aEMgYfZ8Y5Cz\\n" +
"M4vPRr9jUyR9AHPU0Uo+FQikNzmZYw75Cy32gIEWZ8hgCermRwMVzarvYsd+VpsY\\n" +
"BpBbO751n4Iel+FwzjpnwFTkYQ84b2JgCDq/zW8A4BEsoB8kkc6SUXMCgYEAy8N1\\n" +
"+FDRkvMr+UBMHQBJQeV85+CGMiDHkLIDlYvFIMtqEo+as/wJquTRId5W3HayX9LY\\n" +
"PJWYl1Baqdk063Z8Z5L+G1HQVI+ddhrqdG/z8tC/l3ByQvs4KuQwKKktD6EqNjMy\\n" +
"0zus3Meh6wush7jwDwMmSzPDadH1RGS4GxFyN78CgYAq+vBm/3lBQqnvqMIDB8gd\\n" +
"cfyqlKfRys3SKuKm/OI2qhEFVL/nt8Nwf7khR4z/B021bShjY3p3k4zxneCx5Zqb\\n" +
"lvYXBCojHAehAb3mAPpGiIqDQujRdTMIy6yDwLWzvF8CgUwu+nqCPUi+610BQ7mF\\n" +
"AgBXY63Gr5FYbwPJeGsHXQKBgDf251/cUrNZtqouzrjoazZ+IWBOeo0qE6XaPsHE\\n" +
"MdBgDjIq3wKwJreZQRdcSd8jerp23o1FSTPGDiC4V6CUWnbYGJLIVb/j8guOOPbi\\n" +
"CM6YJwchC0D6XuLo6ZFBZe71BPL9/OenbEL3UbGM80YTtVtqMgpVnUZjNEokn6xP\\n" +
"jl9hAoGAXXUAdYoumh+EBqVPfy+4cg9DDhXSNAOnqMU2wT5IBayeKoXcUCRA3xju\\n" +
"uFUF2qNjMY9i34RxP0s3Qhk2iVeU0lWen/kfr9RDasYnmYwT6TKKLrteNrN3YaXD\\n" +
"XctlclkiOWmdaoAYpaC4c+iHNGMmCSCvmCo+qhG4fmDH1a5aIag=\\n\n" +
"-----END RSA PRIVATE KEY-----\n";
var catastrophic_backtracing_regex = /^\s*-----BEGIN RSA PRIVATE KEY-----\s*([A-Za-z0-9+/=]+\s*)+-----END RSA PRIVATE KEY-----\s*$/g;
var emulated_atomic_grouping_regex = /^s*-----BEGIN RSA PRIVATE KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END RSA PRIVATE KEY-----\s*$/g;
if (process.argv.indexOf('emulated_good') >= 0) {
console.log("Working good key test: " + emulated_atomic_grouping_regex.test(goodkey));
}
if (process.argv.indexOf('emulated_bad') >= 0) {
console.log("Working bad key test: " + emulated_atomic_grouping_regex.test(badkey));
}
if (process.argv.indexOf('dangerous_good') >= 0) {
console.log("Good key with dangerous regex test: " + catastrophic_backtracing_regex.test(goodkey));
}
if (process.argv.indexOf('dangerous_bad') >= 0) {
console.log("Bad key with dangerous regex test: " + catastrophic_backtracing_regex.test(badkey));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment