1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| /**
| * 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;
| }
| }
| },
| };
|
|