INNER CODE UNIT · TypeScript
isDecryptionSuccess
KishanBagaria/padding-oracle-attacker · src/cli.ts:169
const isDecryptionSuccess = ({ statusCode, body }: OracleResult) => {
if (!isNaN(paddingError as number)) return statusCode !== +paddingError
return !body.includes(paddingError as unknown as string)
}
const transformPayload = (payload: Buffer) => {
const urlencode = dontURLEncodePayload ? (i: string) => i : encodeURIComponent
if (payloadEncoding === 'hex-uppercase') return payload.toString('hex').toUpperCase()
if (payloadEncoding === 'base64') return urlencode(payload.toString('base64'))
if (payloadEncoding === 'base64-urlsafe') return urlencode(toBase64Custom(payload, '-_'))
if (payloadEncoding.startsWith('base64(')) {
// base64 with custom alphabet. like "base64(-!~)"
const chars = payloadEncoding.slice('base64('.length).split('')
return urlencode(toBase64Custom(payload, chars))
}
return payload.toString('hex')
}
const isCacheEnabled = !disableCache && cache !== false
const commonArgs = { url, blockSize, isDecryptionSuccess, transformPayload, concurrency, requestOptions, isCacheEnabled }