diff options
Diffstat (limited to 'www/lib/crypto-js/pad-zeropadding.js')
| -rw-r--r-- | www/lib/crypto-js/pad-zeropadding.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/www/lib/crypto-js/pad-zeropadding.js b/www/lib/crypto-js/pad-zeropadding.js new file mode 100644 index 00000000..0e8a859c --- /dev/null +++ b/www/lib/crypto-js/pad-zeropadding.js @@ -0,0 +1,45 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + i--; + } + data.sigBytes = i + 1; + } + }; + + + return CryptoJS.pad.ZeroPadding; + +}));
\ No newline at end of file |
