@ksen/crypto-ts
Version:
A cryptography algorithms library compatible with ES6 and TypeScript
31 lines (25 loc) • 597 B
text/typescript
/**
* 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;
}
}
},
};