@cantoo/pdf-lib
Version:
Create and modify PDF files with JavaScript
96 lines • 5.26 kB
TypeScript
import PDFDict from './objects/PDFDict';
import PDFName from './objects/PDFName';
import DecryptStream from './streams/DecryptStream';
import { StreamType } from './streams/Stream';
declare class ARCFourCipher {
private s;
private a;
private b;
constructor(key: Uint8Array);
encryptBlock(data: Uint8Array): Uint8Array;
decryptBlock(data: Uint8Array): Uint8Array;
encrypt(data: Uint8Array): Uint8Array;
}
declare const calculateMD5: (data: Uint8Array, offset: number, length: number) => Uint8Array;
declare const calculateSHA256: (data: Uint8Array, offset: number, length: number) => Uint8Array;
declare const calculateSHA512: (data: Uint8Array, offset: number, length: number, mode384?: boolean) => Uint8Array;
declare function calculateSHA384(data: Uint8Array, offset: number, length: number): Uint8Array;
declare class NullCipher {
decryptBlock(data: Uint8Array): Uint8Array;
encrypt(data: Uint8Array): Uint8Array;
}
declare class AESBaseCipher {
protected _s: Uint8Array;
protected _keySize: number;
protected _key: Uint8Array;
protected _cyclesOfRepetition: number;
private _inv_s;
private _mix;
private _mixCol;
buffer: Uint8Array;
bufferPosition: number;
bufferLength: number;
iv: Uint8Array;
constructor();
_expandKey(_cipherKey: Uint8Array): void;
_decrypt(input: Uint8Array, key: Uint8Array): Uint8Array;
_encrypt(input: Uint8Array, key: Uint8Array): Uint8Array;
_decryptBlock2(data: Uint8Array, finalize: boolean): Uint8Array;
decryptBlock(data: Uint8Array, finalize: boolean, iv?: Uint8Array): Uint8Array;
encrypt(data: Uint8Array, iv: Uint8Array): Uint8Array;
}
declare class AES128Cipher extends AESBaseCipher {
private _rcon;
constructor(key: Uint8Array);
_expandKey(cipherKey: Uint8Array): Uint8Array;
}
declare class AES256Cipher extends AESBaseCipher {
constructor(key: Uint8Array);
_expandKey(cipherKey: Uint8Array): Uint8Array;
}
declare class PDF17 {
checkOwnerPassword(password: Uint8Array, ownerValidationSalt: Uint8Array, userBytes: Uint8Array, ownerPassword: Uint8Array): boolean;
checkUserPassword(password: Uint8Array, userValidationSalt: Uint8Array, userPassword: Uint8Array): boolean;
getOwnerKey(password: Uint8Array, ownerKeySalt: Uint8Array, userBytes: Uint8Array, ownerEncryption: Uint8Array): Uint8Array;
getUserKey(password: Uint8Array, userKeySalt: Uint8Array, userEncryption: Uint8Array): Uint8Array;
}
declare class PDF20 {
calculatePDF20Hash(password: Uint8Array, input: Uint8Array, userBytes: Uint8Array): Uint8Array;
hash(password: Uint8Array, concatBytes: Uint8Array, userBytes: Uint8Array): Uint8Array;
checkOwnerPassword(password: Uint8Array, ownerValidationSalt: Uint8Array, userBytes: Uint8Array, ownerPassword: Uint8Array): boolean;
checkUserPassword(password: Uint8Array, userValidationSalt: Uint8Array, userPassword: Uint8Array): boolean;
getOwnerKey(password: Uint8Array, ownerKeySalt: Uint8Array, userBytes: Uint8Array, ownerEncryption: Uint8Array): Uint8Array;
getUserKey(password: Uint8Array, userKeySalt: Uint8Array, userEncryption: Uint8Array): Uint8Array;
}
type Cipher = ARCFourCipher | NullCipher | AES128Cipher | AES256Cipher;
declare class CipherTransform {
private StringCipherConstructor;
private StreamCipherConstructor;
constructor(stringCipherConstructor: () => Cipher, streamCipherConstructor: () => Cipher);
createStream(stream: StreamType, length: number): DecryptStream;
decryptString(s: string): string;
decryptBytes(d: Uint8Array): Uint8Array;
encryptString(s: string): string;
}
declare class CipherTransformFactory {
encryptMetadata: boolean;
encryptionKey: Uint8Array;
algorithm: number;
filterName: string;
dict: PDFDict;
cf: PDFDict;
stmf: PDFName;
strf: PDFName;
eff: PDFName;
private defaultPasswordBytes;
private identityName;
constructor(dict: PDFDict, fileIdBytes: Uint8Array, password?: string);
createCipherTransform(num: number, gen: number): CipherTransform;
createEncryptionKey20(revision: number, password: Uint8Array | undefined, ownerPassword: Uint8Array, ownerValidationSalt: Uint8Array, ownerKeySalt: Uint8Array, uBytes: Uint8Array, userPassword: Uint8Array, userValidationSalt: Uint8Array, userKeySalt: Uint8Array, ownerEncryption: Uint8Array, userEncryption: Uint8Array, _perms: Uint8Array): Uint8Array | null;
prepareKeyData(fileId: Uint8Array, password: Uint8Array | undefined, ownerPassword: Uint8Array, userPassword: Uint8Array, flags: number, revision: number, keyLength: number, encryptMetadata: boolean): Uint8Array | null;
decodeUserPassword(password: Uint8Array, ownerPassword: Uint8Array, revision: number, keyLength: number): Uint8Array;
buildObjectKey(num: number, gen: number, encryptionKey: Uint8Array, isAes?: boolean): Uint8Array;
buildCipherConstructor(cf: PDFDict, name: PDFName, num: number, gen: number, key: Uint8Array): (() => NullCipher) | (() => AES256Cipher);
}
export { AES128Cipher, AES256Cipher, ARCFourCipher, calculateMD5, calculateSHA256, calculateSHA384, calculateSHA512, CipherTransformFactory, CipherTransform, PDF17, PDF20, };
//# sourceMappingURL=crypto.d.ts.map