From COBS operation invalid input tests
This commit is contained in:
parent
bf09d2158e
commit
82f7beb3fd
@ -4,6 +4,8 @@
|
|||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import OperationError from "../errors/OperationError.mjs";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* COBS-encode a byte array
|
* COBS-encode a byte array
|
||||||
* @param {Uint8Array} data
|
* @param {Uint8Array} data
|
||||||
@ -23,7 +25,7 @@ export function toCobs(data) {
|
|||||||
if ((endIndex < 0 || endIndex > 254) && data.length > 254) {
|
if ((endIndex < 0 || endIndex > 254) && data.length > 254) {
|
||||||
output.push(255);
|
output.push(255);
|
||||||
output.push(...data.slice(1, 255));
|
output.push(...data.slice(1, 255));
|
||||||
data = [...data.slice(255)];
|
data = data.slice(255);
|
||||||
if (data.length !== 0) {
|
if (data.length !== 0) {
|
||||||
data = [0, ...data];
|
data = [0, ...data];
|
||||||
}
|
}
|
||||||
@ -51,6 +53,10 @@ export function fromCobs(data) {
|
|||||||
return new Uint8Array();
|
return new Uint8Array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.findIndex((value) => value === 0) >= 0) {
|
||||||
|
throw new OperationError("Could not decode from COBS: payload must not contain a 0x00 byte");
|
||||||
|
}
|
||||||
|
|
||||||
const output = [];
|
const output = [];
|
||||||
|
|
||||||
while (data.length > 0) {
|
while (data.length > 0) {
|
||||||
|
|||||||
@ -428,4 +428,49 @@ TestRegister.addTests([
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "From COBS Invalid input #1",
|
||||||
|
"input": "00 48 45 4C 4C 4F",
|
||||||
|
"expectedOutput": "Could not decode from COBS: payload must not contain a 0x00 byte",
|
||||||
|
"recipeConfig": [
|
||||||
|
{
|
||||||
|
"op": "From Hex",
|
||||||
|
"args": ["Auto"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"op": "From COBS",
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "From COBS Invalid input #2",
|
||||||
|
"input": "48 45 00 4C 4C 4F",
|
||||||
|
"expectedOutput": "Could not decode from COBS: payload must not contain a 0x00 byte",
|
||||||
|
"recipeConfig": [
|
||||||
|
{
|
||||||
|
"op": "From Hex",
|
||||||
|
"args": ["Auto"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"op": "From COBS",
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "From COBS Invalid input #3",
|
||||||
|
"input": "48 45 4C 4C 4F 00",
|
||||||
|
"expectedOutput": "Could not decode from COBS: payload must not contain a 0x00 byte",
|
||||||
|
"recipeConfig": [
|
||||||
|
{
|
||||||
|
"op": "From Hex",
|
||||||
|
"args": ["Auto"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"op": "From COBS",
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user