{"version":3,"file":"pkcs5.mjs","sources":["../src/pkcs-shared.ts","../src/pkcs5.ts"],"sourcesContent":["import { assertBlockSize, assertPaddedInput, getBlockPaddingLength } from '@jscrypto/core';\n\nexport function padPkcs(input: Uint8Array, blockSize: number): Uint8Array {\n  assertBlockSize(blockSize, { max: 255 });\n  const paddingLength = getBlockPaddingLength(input.length, blockSize);\n  const output = new Uint8Array(input.length + paddingLength);\n  output.set(input);\n  output.fill(paddingLength, input.length);\n  return output;\n}\n\nexport function unpadPkcs(input: Uint8Array, blockSize: number): Uint8Array {\n  assertPaddedInput(input, blockSize, 'PKCS#7', { max: 255 });\n\n  const paddingLength = input[input.length - 1];\n  if (paddingLength === 0 || paddingLength > blockSize || paddingLength > input.length) {\n    throw new Error('Invalid PKCS#7 padding.');\n  }\n\n  for (let i = input.length - paddingLength; i < input.length; i++) {\n    if (input[i] !== paddingLength) {\n      throw new Error('Invalid PKCS#7 padding.');\n    }\n  }\n\n  return input.slice(0, input.length - paddingLength);\n}\n","import type { PaddingComponent, PresetComponent } from '@jscrypto/core';\nimport { padPkcs, unpadPkcs } from './pkcs-shared.js';\n\nexport const pkcs5: PaddingComponent<'Pkcs5'> = {\n  kind: 'padding',\n  name: 'Pkcs5',\n  pad: padPkcs,\n  unpad: unpadPkcs,\n};\n\nexport const pkcs5Preset: PresetComponent<'pkcs5'> = {\n  kind: 'preset',\n  name: 'pkcs5',\n  components() {\n    return [pkcs5];\n  },\n};\n"],"names":[],"mappings":";;;;;;;AAEM,SAAU,OAAO,CAAC,KAAiB,EAAE,SAAiB,EAAA;IAC1D,eAAe,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;AAC3D,IAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;AACxC,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,SAAS,CAAC,KAAiB,EAAE,SAAiB,EAAA;AAC5D,IAAA,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAE3D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,IAAA,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,GAAG,SAAS,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE;AACpF,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;IAC5C;AAEA,IAAA,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChE,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;QAC5C;IACF;AAEA,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;AACrD;;ACvBO,MAAM,KAAK,GAA8B;AAC9C,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,GAAG,EAAE,OAAO;AACZ,IAAA,KAAK,EAAE,SAAS;;AAGX,MAAM,WAAW,GAA6B;AACnD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,OAAO;IACb,UAAU,GAAA;QACR,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC;;;;;"}