3
code.google.com/p/crypto-js
4
(c) 2009-2012 by Jeff Mott. All rights reserved.
5
code.google.com/p/crypto-js/wiki/License
8
* ANSI X.923 padding strategy.
10
CryptoJS.pad.AnsiX923 = {
11
pad: function (data, blockSize) {
13
var dataSigBytes = data.sigBytes;
14
var blockSizeBytes = blockSize * 4;
16
// Count padding bytes
17
var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
19
// Compute last byte position
20
var lastBytePos = dataSigBytes + nPaddingBytes - 1;
24
data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
25
data.sigBytes += nPaddingBytes;
28
unpad: function (data) {
29
// Get number of padding bytes from last byte
30
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
33
data.sigBytes -= nPaddingBytes;