Updated magic pattern matches for QP and B64 encodings to handle whitespace better

This commit is contained in:
n1474335 2018-11-23 14:58:30 +00:00
parent a946d04a72
commit 1d1c69ca51
2 changed files with 25 additions and 25 deletions

View File

@ -38,44 +38,44 @@ class FromBase64 extends Operation {
]; ];
this.patterns = [ this.patterns = [
{ {
match: "^(?:[A-Z\\d+/]{4})+(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?$", match: "^\\s*(?:[A-Z\\d+/]{4})+(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["A-Za-z0-9+/=", false] args: ["A-Za-z0-9+/=", true]
}, },
{ {
match: "^[A-Z\\d\\-_]{20,}$", match: "^\\s*[A-Z\\d\\-_]{20,}\\s*$",
flags: "i", flags: "i",
args: ["A-Za-z0-9-_", false] args: ["A-Za-z0-9-_", true]
}, },
{ {
match: "^(?:[A-Z\\d+\\-]{4}){5,}(?:[A-Z\\d+\\-]{2}==|[A-Z\\d+\\-]{3}=)?$", match: "^\\s*(?:[A-Z\\d+\\-]{4}){5,}(?:[A-Z\\d+\\-]{2}==|[A-Z\\d+\\-]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["A-Za-z0-9+\\-=", false] args: ["A-Za-z0-9+\\-=", true]
}, },
{ {
match: "^(?:[A-Z\\d./]{4}){5,}(?:[A-Z\\d./]{2}==|[A-Z\\d./]{3}=)?$", match: "^\\s*(?:[A-Z\\d./]{4}){5,}(?:[A-Z\\d./]{2}==|[A-Z\\d./]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["./0-9A-Za-z=", false] args: ["./0-9A-Za-z=", true]
}, },
{ {
match: "^[A-Z\\d_.]{20,}$", match: "^\\s*[A-Z\\d_.]{20,}\\s*$",
flags: "i", flags: "i",
args: ["A-Za-z0-9_.", false] args: ["A-Za-z0-9_.", true]
}, },
{ {
match: "^(?:[A-Z\\d._]{4}){5,}(?:[A-Z\\d._]{2}--|[A-Z\\d._]{3}-)?$", match: "^\\s*(?:[A-Z\\d._]{4}){5,}(?:[A-Z\\d._]{2}--|[A-Z\\d._]{3}-)?\\s*$",
flags: "i", flags: "i",
args: ["A-Za-z0-9._-", false] args: ["A-Za-z0-9._-", true]
}, },
{ {
match: "^(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?$", match: "^\\s*(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["0-9a-zA-Z+/=", false] args: ["0-9a-zA-Z+/=", true]
}, },
{ {
match: "^(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?$", match: "^\\s*(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["0-9A-Za-z+/=", false] args: ["0-9A-Za-z+/=", true]
}, },
{ {
match: "^[ !\"#$%&'()*+,\\-./\\d:;<=>?@A-Z[\\\\\\]^_]{20,}$", match: "^[ !\"#$%&'()*+,\\-./\\d:;<=>?@A-Z[\\\\\\]^_]{20,}$",
@ -83,24 +83,24 @@ class FromBase64 extends Operation {
args: [" -_", false] args: [" -_", false]
}, },
{ {
match: "^[A-Z\\d+\\-]{20,}$", match: "^\\s*[A-Z\\d+\\-]{20,}\\s*$",
flags: "i", flags: "i",
args: ["+\\-0-9A-Za-z", false] args: ["+\\-0-9A-Za-z", true]
}, },
{ {
match: "^[!\"#$%&'()*+,\\-0-689@A-NP-VX-Z[`a-fh-mp-r]{20,}$", match: "^\\s*[!\"#$%&'()*+,\\-0-689@A-NP-VX-Z[`a-fh-mp-r]{20,}\\s*$",
flags: "", flags: "",
args: ["!-,-0-689@A-NP-VX-Z[`a-fh-mp-r", false] args: ["!-,-0-689@A-NP-VX-Z[`a-fh-mp-r", true]
}, },
{ {
match: "^(?:[N-ZA-M\\d+/]{4}){5,}(?:[N-ZA-M\\d+/]{2}==|[N-ZA-M\\d+/]{3}=)?$", match: "^\\s*(?:[N-ZA-M\\d+/]{4}){5,}(?:[N-ZA-M\\d+/]{2}==|[N-ZA-M\\d+/]{3}=)?\\s*$",
flags: "i", flags: "i",
args: ["N-ZA-Mn-za-m0-9+/=", false] args: ["N-ZA-Mn-za-m0-9+/=", true]
}, },
{ {
match: "^[A-Z\\d./]{20,}$", match: "^\\s*[A-Z\\d./]{20,}\\s*$",
flags: "i", flags: "i",
args: ["./0-9A-Za-z", false] args: ["./0-9A-Za-z", true]
}, },
]; ];
} }

View File

@ -30,7 +30,7 @@ class FromQuotedPrintable extends Operation {
this.args = []; this.args = [];
this.patterns = [ this.patterns = [
{ {
match: "^[\\x21-\\x3d\\x3f-\\x7e \\t]*(?:=[\\da-f]{2}|=\\r?\\n)(?:[\\x21-\\x3d\\x3f-\\x7e \\t]|=[\\da-f]{2}|=\\r?\\n)*$", match: "^[\\x21-\\x3d\\x3f-\\x7e \\t]{0,76}(?:=[\\da-f]{2}|=\\r?\\n)(?:[\\x21-\\x3d\\x3f-\\x7e \\t]|=[\\da-f]{2}|=\\r?\\n)*$",
flags: "i", flags: "i",
args: [] args: []
}, },