Files
heros/node_modules/crypto-es/lib/pad-zeropadding.js
2024-07-17 16:14:14 +08:00

31 lines
597 B
JavaScript

/**
* Zero padding strategy.
*/
export const ZeroPadding = {
pad(data, blockSize) {
const _data = data;
// Shortcut
const blockSizeBytes = blockSize * 4;
// Pad
_data.clamp();
_data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
},
unpad(data) {
const _data = data;
// Shortcut
const dataWords = _data.words;
// Unpad
for (let i = _data.sigBytes - 1; i >= 0; i -= 1) {
if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
_data.sigBytes = i + 1;
break;
}
}
},
};