36 lines
		
	
	
		
			994 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			994 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| CryptoJS v3.1.2
 | |
| code.google.com/p/crypto-js
 | |
| (c) 2009-2013 by Jeff Mott. All rights reserved.
 | |
| code.google.com/p/crypto-js/wiki/License
 | |
| */
 | |
| /**
 | |
|  * ANSI X.923 padding strategy.
 | |
|  */
 | |
| CryptoJS.pad.AnsiX923 = {
 | |
|     pad: function (data, blockSize) {
 | |
|         // Shortcuts
 | |
|         var dataSigBytes = data.sigBytes;
 | |
|         var blockSizeBytes = blockSize * 4;
 | |
| 
 | |
|         // Count padding bytes
 | |
|         var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
 | |
| 
 | |
|         // Compute last byte position
 | |
|         var lastBytePos = dataSigBytes + nPaddingBytes - 1;
 | |
| 
 | |
|         // Pad
 | |
|         data.clamp();
 | |
|         data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
 | |
|         data.sigBytes += nPaddingBytes;
 | |
|     },
 | |
| 
 | |
|     unpad: function (data) {
 | |
|         // Get number of padding bytes from last byte
 | |
|         var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
 | |
| 
 | |
|         // Remove padding
 | |
|         data.sigBytes -= nPaddingBytes;
 | |
|     }
 | |
| };
 |