padding-oracle-attacker
Version:
CLI tool and library to execute padding oracle attacks easily
57 lines (56 loc) • 1.58 kB
TypeScript
/// <reference types="node" />
export interface HeadersObject {
[key: string]: string;
}
export interface OracleResult {
url: string;
statusCode: number;
headers: HeadersObject;
body: string;
}
interface RequestOptions {
method?: string;
headers?: string | string[] | HeadersObject;
data?: string;
}
export interface OracleCallerOptions {
url: string;
requestOptions?: RequestOptions;
transformPayload?: (payload: Buffer) => string;
isCacheEnabled?: boolean;
logMode?: 'full' | 'minimal' | 'none';
}
interface OptionsBase extends OracleCallerOptions {
blockSize: number;
concurrency?: number;
isDecryptionSuccess: (oracleResult: OracleResult) => boolean;
}
export interface ResponseAnalysisOptions extends OracleCallerOptions {
blockSize: number;
concurrency?: number;
saveResponsesToTmpDir?: boolean;
}
export interface PaddingOracleOptions extends OptionsBase {
ciphertext: Buffer;
plaintext: Buffer;
blockCount: number;
origBytes: Buffer;
foundBytes: Buffer;
interBytes: Buffer;
foundOffsets: Set<number>;
initFirstPayloadBlockWithOrigBytes?: boolean;
startFromFirstBlock?: boolean;
}
export interface DecryptOptions extends OptionsBase {
ciphertext: Buffer;
makeInitialRequest?: boolean;
alreadyFound?: Buffer;
initFirstPayloadBlockWithOrigBytes?: boolean;
startFromFirstBlock?: boolean;
}
export interface EncryptOptions extends OptionsBase {
plaintext: Buffer;
makeFinalRequest?: boolean;
lastCiphertextBlock?: Buffer;
}
export {};