~bac/juju-gui/trunkcopy

« back to all changes in this revision

Viewing changes to lib/cryptojs/components/pad-ansix923.js

  • Committer: kapil.foss at gmail
  • Date: 2012-07-13 18:45:59 UTC
  • Revision ID: kapil.foss@gmail.com-20120713184559-2xl7be17egsrz0c9
reshape

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
CryptoJS v3.0.2
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
6
 
*/
7
 
/**
8
 
 * ANSI X.923 padding strategy.
9
 
 */
10
 
CryptoJS.pad.AnsiX923 = {
11
 
    pad: function (data, blockSize) {
12
 
        // Shortcuts
13
 
        var dataSigBytes = data.sigBytes;
14
 
        var blockSizeBytes = blockSize * 4;
15
 
 
16
 
        // Count padding bytes
17
 
        var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
18
 
 
19
 
        // Compute last byte position
20
 
        var lastBytePos = dataSigBytes + nPaddingBytes - 1;
21
 
 
22
 
        // Pad
23
 
        data.clamp();
24
 
        data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
25
 
        data.sigBytes += nPaddingBytes;
26
 
    },
27
 
 
28
 
    unpad: function (data) {
29
 
        // Get number of padding bytes from last byte
30
 
        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
31
 
 
32
 
        // Remove padding
33
 
        data.sigBytes -= nPaddingBytes;
34
 
    }
35
 
};