mirror of
https://github.com/gchq/CyberChef.git
synced 2025-05-09 07:45:00 -04:00
code cleaning
This commit is contained in:
parent
5f28349769
commit
7bbd471de3
2 changed files with 26 additions and 23 deletions
|
@ -24,6 +24,7 @@ class Mime {
|
|||
this.mimeObj = Mime._parseMime(input);
|
||||
}
|
||||
|
||||
//TODO: Generator?
|
||||
/**
|
||||
* Extract data from mimeObjects and return object array containing them.
|
||||
*
|
||||
|
@ -82,7 +83,7 @@ class Mime {
|
|||
* @param {boolean} recursive
|
||||
*/
|
||||
decodeHeaderWords(recursive=true) {
|
||||
Mime.walkMime(this.mimeObj, mimePart => {
|
||||
Mime.walkMime(this.mimeObj, function(mimePart) {
|
||||
if (mimePart.rawHeader) {
|
||||
mimePart.rawHeader = Mime.replaceEncodedWord(mimePart.rawHeader);
|
||||
}
|
||||
|
@ -95,9 +96,9 @@ class Mime {
|
|||
* @param {boolean} recursive
|
||||
*/
|
||||
decodeMimeObjects(recursive=true) {
|
||||
Mime.walkMime(this.mimeObj,
|
||||
mimePart => Mime.decodeMimeMessage(mimePart),
|
||||
recursive);
|
||||
Mime.walkMime(this.mimeObj, function(mimePart) {
|
||||
Mime.decodeMimeMessage(mimePart);
|
||||
}, recursive);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -116,7 +117,7 @@ class Mime {
|
|||
}
|
||||
const sections = [];
|
||||
|
||||
Mime._splitMultipart(mimeObj.body, boundary).forEach((mimePart) => {
|
||||
Mime._splitMultipart(mimeObj.body, boundary).forEach(function(mimePart) {
|
||||
sections.push(Mime._parseMime(mimePart));
|
||||
}, sections);
|
||||
mimeObj.body = sections;
|
||||
|
@ -135,7 +136,9 @@ class Mime {
|
|||
const contType = Mime._extractField(mimeObj, "content-type");
|
||||
method(mimeObj);
|
||||
if (recursive && mimeObj.body && contType && contType.startsWith("multipart/")) {
|
||||
mimeObj.body.forEach(obj => Mime.walkMime(obj, method));
|
||||
mimeObj.body.forEach(function(obj) {
|
||||
Mime.walkMime(obj, method);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -250,13 +253,15 @@ class Mime {
|
|||
* @param {string} field
|
||||
* @returns {string}
|
||||
*/
|
||||
static _extractField(mimeObj, field, subfield="value") {
|
||||
static _extractField(mimeObj, field, subfield=null) {
|
||||
if (subfield) {
|
||||
subfield = subfield.toLowerCase();
|
||||
}
|
||||
if (mimeObj.header.hasOwnProperty(field)) {
|
||||
const fieldSplit = mimeObj.header[field][0].split(/;\s+/g);
|
||||
for (let i = 0; i < fieldSplit.length; i++) {
|
||||
const eq = fieldSplit[i].indexOf("=");
|
||||
if (eq >= 0) {
|
||||
if (fieldSplit[i].length > eq) {
|
||||
if (eq >= 0 && fieldSplit[i].length > eq && subfield) {
|
||||
const kv = [fieldSplit[i].substring(0, eq), fieldSplit[i].substring(eq + 1).trim()];
|
||||
if ((kv[1].startsWith("'") && kv[1].endsWith("'")) || (kv[1].startsWith("\"") && kv[1].endsWith("\""))) {
|
||||
const val = (/(['"])(.+)\1/.exec(kv[1]));
|
||||
|
@ -264,13 +269,10 @@ class Mime {
|
|||
kv[1] = val[2];
|
||||
}
|
||||
}
|
||||
if (subfield.toLowerCase() === kv[0].toLowerCase()) {
|
||||
if (subfield === kv[0].toLowerCase()) {
|
||||
return kv[1];
|
||||
}
|
||||
} else {
|
||||
throw OperationError("Not a valid header entry");
|
||||
}
|
||||
} else if (subfield === "value"){
|
||||
} else if (!subfield){
|
||||
return fieldSplit[i].trim().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
@ -278,6 +280,7 @@ class Mime {
|
|||
return null;
|
||||
}
|
||||
|
||||
//TODO: turn into generator function
|
||||
/**
|
||||
* Splits a Mime document by the current boundaries and attempts to account
|
||||
* for the current new line size which can be either the standard \r\n or \n.
|
||||
|
|
|
@ -30,7 +30,7 @@ class ParseIMF extends Operation {
|
|||
this.presentType = "html";
|
||||
this.args = [
|
||||
{
|
||||
"name": "Decode Encoded-Words",
|
||||
"name": "Decode Mime Encoded Words",
|
||||
"type": "boolean",
|
||||
"value": false
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ class ParseIMF extends Operation {
|
|||
const dataObj = eml.extractData(fields);
|
||||
let subject = null;
|
||||
const retval = [];
|
||||
if (dataObj.length >= 1) {
|
||||
if (dataObj.length) {
|
||||
subject = dataObj[0].fields.subject;
|
||||
if (dataObj[0].header) {
|
||||
retval.push(new File([dataObj[0].header], "Header.txt", {type: "text/plain"}));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue