mirror of
https://github.com/gchq/CyberChef.git
synced 2025-05-10 08:15:00 -04:00
Remove workaround as upstream has fixed the issue
This commit is contained in:
parent
3c5192c2bf
commit
25dc95b73d
2 changed files with 7 additions and 61 deletions
|
@ -77,37 +77,9 @@ Triple DES uses a key length of 24 bytes (192 bits).`);
|
|||
input = Utils.convertToByteString(input, inputType);
|
||||
|
||||
const decipher = forge.cipher.createDecipher("DES-" + mode, key);
|
||||
let result;
|
||||
|
||||
if (mode === "CTR") {
|
||||
// Temp workaround until https://github.com/digitalbazaar/forge/issues/721 is fixed
|
||||
const blockSize = decipher.mode.blockSize;
|
||||
const blockOutputs = forge.util.createBuffer();
|
||||
const numBlocks = input.length % blockSize === 0 ? input.length >> 3 : (input.length >> 3) + 1;
|
||||
if (iv.length < blockSize) {
|
||||
const ivLen = iv.length;
|
||||
for (let i=0; i < blockSize - ivLen; i++) {
|
||||
iv.unshift(0);
|
||||
}
|
||||
}
|
||||
for (let j=0; j < numBlocks; j++) {
|
||||
decipher.start({iv: iv});
|
||||
decipher.update(forge.util.createBuffer().fillWithByte(0, blockSize));
|
||||
blockOutputs.putBuffer(decipher.output);
|
||||
iv[iv.length-1] = (iv[iv.length-1] + 1) & 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
const output = forge.util.createBuffer();
|
||||
for (let k=0; k < input.length; k++) {
|
||||
output.putByte(input.charCodeAt(k)^blockOutputs.getByte());
|
||||
}
|
||||
result = true;
|
||||
decipher.output = output;
|
||||
} else {
|
||||
decipher.start({iv: iv});
|
||||
decipher.update(forge.util.createBuffer(input));
|
||||
result = decipher.finish();
|
||||
}
|
||||
const result = decipher.finish();
|
||||
|
||||
if (result) {
|
||||
return outputType === "Hex" ? decipher.output.toHex() : decipher.output.getBytes();
|
||||
|
|
|
@ -77,35 +77,9 @@ Triple DES uses a key length of 24 bytes (192 bits).`);
|
|||
input = Utils.convertToByteString(input, inputType);
|
||||
|
||||
const cipher = forge.cipher.createCipher("DES-" + mode, key);
|
||||
|
||||
if (mode === "CTR") {
|
||||
// Temp workaround until https://github.com/digitalbazaar/forge/issues/721 is fixed
|
||||
const blockSize = cipher.mode.blockSize;
|
||||
const blockOutputs = forge.util.createBuffer();
|
||||
const numBlocks = input.length % blockSize === 0 ? input.length >> 3 : (input.length >> 3) + 1;
|
||||
if (iv.length < blockSize) {
|
||||
const ivLen = iv.length;
|
||||
for (let i=0; i < blockSize - ivLen; i++) {
|
||||
iv.unshift(0);
|
||||
}
|
||||
}
|
||||
for (let j=0; j < numBlocks; j++) {
|
||||
cipher.start({iv: iv});
|
||||
cipher.update(forge.util.createBuffer().fillWithByte(0, blockSize));
|
||||
blockOutputs.putBuffer(cipher.output);
|
||||
iv[iv.length-1] = (iv[iv.length-1] + 1) & 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
const output = forge.util.createBuffer();
|
||||
for (let k=0; k < input.length; k++) {
|
||||
output.putByte(input.charCodeAt(k)^blockOutputs.getByte());
|
||||
}
|
||||
cipher.output=output;
|
||||
} else {
|
||||
cipher.start({iv: iv});
|
||||
cipher.update(forge.util.createBuffer(input));
|
||||
cipher.finish();
|
||||
}
|
||||
|
||||
return outputType === "Hex" ? cipher.output.toHex() : cipher.output.getBytes();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue