Show More
Commit Description:
add model solution
Commit Description:
add model solution
References:
File last commit:
Show/Diff file:
Action:
node_modules/crypto-js/pad-ansix923.js
| 48 lines
| 1.2 KiB
| application/javascript
| JavascriptLexer
|
r789 | ;(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) { | |||
/** | |||
* 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; | |||
} | |||
}; | |||
return CryptoJS.pad.Ansix923; | |||
})); |