pad-zeropadding.js 584 B

12345678910111213141516171819202122232425
  1. /**
  2. * Zero padding strategy.
  3. */
  4. CryptoJS.pad.ZeroPadding = {
  5. pad: function (data, blockSize) {
  6. // Shortcut
  7. var blockSizeBytes = blockSize * 4;
  8. // Pad
  9. data.clamp();
  10. data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
  11. },
  12. unpad: function (data) {
  13. // Shortcut
  14. var dataWords = data.words;
  15. // Unpad
  16. var i = data.sigBytes - 1;
  17. while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
  18. i--;
  19. }
  20. data.sigBytes = i + 1;
  21. }
  22. };