crypto-es
Version:
A cryptography algorithms library compatible with ES6 and TypeScript
1 lines • 1.46 kB
Source Map (JSON)
{"version":3,"file":"pad-ansix923.mjs","names":["AnsiX923: Padding"],"sources":["../src/pad-ansix923.ts"],"sourcesContent":["import { WordArray } from './core';\nimport { Padding } from './cipher-core';\n\n/**\n * ANSI X.923 padding strategy.\n */\nexport const AnsiX923: Padding = {\n pad(data: WordArray, blockSize: number): void {\n const _data = data;\n\n // Shortcuts\n const dataSigBytes = _data.sigBytes;\n const blockSizeBytes = blockSize * 4;\n\n // Count padding bytes\n const nPaddingBytes = blockSizeBytes - (dataSigBytes % blockSizeBytes);\n\n // Compute last byte position\n const lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n // Pad\n _data.clamp();\n _data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n _data.sigBytes += nPaddingBytes;\n },\n\n unpad(data: WordArray): void {\n const _data = data;\n\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":";;;;AAMA,MAAaA,WAAoB;CAC/B,IAAI,MAAiB,WAAyB;EAC5C,MAAM,QAAQ;EAGd,MAAM,eAAe,MAAM;EAC3B,MAAM,iBAAiB,YAAY;EAGnC,MAAM,gBAAgB,iBAAkB,eAAe;EAGvD,MAAM,cAAc,eAAe,gBAAgB;AAGnD,QAAM;AACN,QAAM,MAAM,gBAAgB,MAAM,iBAAkB,KAAM,cAAc,IAAK;AAC7E,QAAM,YAAY;CACnB;CAED,MAAM,MAAuB;EAC3B,MAAM,QAAQ;EAGd,MAAM,gBAAgB,MAAM,MAAO,MAAM,WAAW,MAAO,KAAK;AAGhE,QAAM,YAAY;CACnB;CACF"}