UNPKG

crypto-es

Version:

A cryptography algorithms library compatible with ES6 and TypeScript

1 lines 1.24 kB
{"version":3,"file":"pad-zeropadding.cjs","names":["ZeroPadding: Padding"],"sources":["../src/pad-zeropadding.ts"],"sourcesContent":["import { WordArray } from './core';\nimport { Padding } from './cipher-core';\n\n/**\n * Zero padding strategy.\n */\nexport const ZeroPadding: Padding = {\n pad(data: WordArray, blockSize: number): void {\n const _data = data;\n\n // Shortcut\n const blockSizeBytes = blockSize * 4;\n\n // Pad\n _data.clamp();\n _data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n },\n\n unpad(data: WordArray): void {\n const _data = data;\n\n // Shortcut\n const dataWords = _data.words;\n\n // Unpad\n for (let i = _data.sigBytes - 1; i >= 0; i -= 1) {\n if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n _data.sigBytes = i + 1;\n break;\n }\n }\n },\n};"],"mappings":";;;;;AAMA,MAAaA,cAAuB;CAClC,IAAI,MAAiB,WAAyB;EAC5C,MAAM,QAAQ;EAGd,MAAM,iBAAiB,YAAY;AAGnC,QAAM;AACN,QAAM,YAAY,kBAAmB,KAAK,WAAW,kBAAmB;CACzE;CAED,MAAM,MAAuB;EAC3B,MAAM,QAAQ;EAGd,MAAM,YAAY,MAAM;AAGxB,OAAK,IAAI,IAAI,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,EAC5C,KAAM,UAAU,MAAM,OAAQ,KAAM,IAAI,IAAK,IAAM,KAAO;AACxD,SAAM,WAAW,IAAI;AACrB;EACD;CAEJ;CACF"}