47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | ;(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; | ||
|  | 	        for (var i = data.sigBytes - 1; i >= 0; i--) { | ||
|  | 	            if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { | ||
|  | 	                data.sigBytes = i + 1; | ||
|  | 	                break; | ||
|  | 	            } | ||
|  | 	        } | ||
|  | 	    } | ||
|  | 	}; | ||
|  | 
 | ||
|  | 
 | ||
|  | 	return CryptoJS.pad.ZeroPadding; | ||
|  | 
 | ||
|  | })); |