crypto-es
Version:
A cryptography algorithms library compatible with ES6 and TypeScript
1 lines • 1.22 kB
Source Map (JSON)
{"version":3,"file":"pad-iso10126.mjs","names":["Iso10126: Padding"],"sources":["../src/pad-iso10126.ts"],"sourcesContent":["import {\n WordArray,\n} from './core';\nimport { Padding } from './cipher-core';\n\n/**\n * ISO 10126 padding strategy.\n */\nexport const Iso10126: Padding = {\n pad(data: WordArray, blockSize: number): void {\n // Shortcut\n const blockSizeBytes = blockSize * 4;\n\n // Count padding bytes\n const nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);\n\n // Pad\n data\n .concat(WordArray.random(nPaddingBytes - 1))\n .concat(WordArray.create([nPaddingBytes << 24], 1));\n },\n\n unpad(data: WordArray): void {\n const _data = data;\n // Get number of padding bytes from last byte\n const nPaddingBytes = _data.words[(_data.sigBytes - 1) >>> 2] & 0xff;\n\n // Remove padding\n _data.sigBytes -= nPaddingBytes;\n },\n};"],"mappings":";;;;;;AAQA,MAAaA,WAAoB;CAC/B,IAAI,MAAiB,WAAyB;EAE5C,MAAM,iBAAiB,YAAY;EAGnC,MAAM,gBAAgB,iBAAkB,KAAK,WAAW;AAGxD,OACG,OAAO,UAAU,OAAO,gBAAgB,IACxC,OAAO,UAAU,OAAO,CAAC,iBAAiB,GAAG,EAAE;CACnD;CAED,MAAM,MAAuB;EAC3B,MAAM,QAAQ;EAEd,MAAM,gBAAgB,MAAM,MAAO,MAAM,WAAW,MAAO,KAAK;AAGhE,QAAM,YAAY;CACnB;CACF"}