118 lines
3.3 KiB
TypeScript
118 lines
3.3 KiB
TypeScript
import * as forge from "node-forge";
|
|
import * as PDFLib from "pdf-lib";
|
|
export * as forge from "node-forge";
|
|
export * as PDFLib from "pdf-lib";
|
|
|
|
export declare function u8arrToRaw(uarr: Uint8Array): string;
|
|
export declare function rawToU8arr(raw: string): Uint8Array;
|
|
export declare namespace Crypto {
|
|
enum Mode {
|
|
RC4_40,
|
|
RC4_128,
|
|
AES_128,
|
|
AES_256,
|
|
}
|
|
}
|
|
export type DSSInfo = {
|
|
certs?: Array<forge.pki.Certificate>;
|
|
ocsps?: Array<Uint8Array>;
|
|
crls?: Array<Uint8Array>;
|
|
};
|
|
export type EncryptOption = {
|
|
mode: Crypto.Mode;
|
|
permissions?: Array<string>;
|
|
userpwd?: string;
|
|
ownerpwd?: string;
|
|
pubkeys?: Array<PubKeyInfo>;
|
|
};
|
|
export type PubKeyInfo = {
|
|
c?: Array<number> | Uint8Array | ArrayBuffer | string | forge.pki.Certificate;
|
|
p?: Array<string>;
|
|
};
|
|
export type SignAreaInfo = {
|
|
x: number;
|
|
y: number;
|
|
w?: number;
|
|
h?: number;
|
|
};
|
|
export type SignTextInfo = {
|
|
text: string,
|
|
fontData?: Array<number> | Uint8Array | ArrayBuffer | PDFLib.StandardFonts;
|
|
subset?: boolean;
|
|
color?: string;
|
|
opacity?: number;
|
|
blendMode?: string;
|
|
lineHeight?: number;
|
|
size: number,
|
|
xOffset?: number;
|
|
yOffset?: number;
|
|
wMax?: number;
|
|
align?: number;
|
|
noBreaks?: string;
|
|
};
|
|
export type SignImageInfo = {
|
|
imgData: Array<number> | Uint8Array | ArrayBuffer | string;
|
|
imgType: string;
|
|
opacity?: number;
|
|
blendMode?: string;
|
|
};
|
|
export type SignDrawInfo = {
|
|
area: SignAreaInfo;
|
|
pageidx?: number | string;
|
|
/** @deprecated use imgInfo instead */
|
|
imgData?: Array<number> | Uint8Array | ArrayBuffer | string;
|
|
/** @deprecated use imgInfo instead */
|
|
imgType?: string;
|
|
imgInfo?: SignImageInfo;
|
|
textInfo?: SignTextInfo;
|
|
};
|
|
export type SignOption = {
|
|
p12cert?: Array<number> | Uint8Array | ArrayBuffer | string;
|
|
pwd?: string;
|
|
permission?: number;
|
|
reason?: string;
|
|
location?: string;
|
|
contact?: string;
|
|
signdate?: Date | TsaServiceInfo | string;
|
|
signame?: string;
|
|
drawinf?: SignDrawInfo;
|
|
ltv?: number;
|
|
debug?: boolean;
|
|
};
|
|
export type TsaServiceInfo = {
|
|
url: string;
|
|
len?: number;
|
|
headers?: Record<string, any>;
|
|
};
|
|
|
|
export declare class CertsChain {
|
|
constructor(certs?: Array<forge.pki.Certificate | forge.asn1.Asn1 | string>);
|
|
buildChain(cert: forge.pki.Certificate): Promise<boolean>;
|
|
getAllCerts(): Array<forge.pki.Certificate>;
|
|
getSignCert(): forge.pki.Certificate;
|
|
isSelfSignedCert(): boolean;
|
|
prepareDSSInf(crlOnly?: boolean): Promise<DSSInfo>;
|
|
}
|
|
export declare class PdfCryptor {
|
|
constructor(encopt: EncryptOption);
|
|
encryptPdf(pdf: PDFLib.PDFDocument | Array<number> | Uint8Array | ArrayBuffer | string, ref?: PDFLib.PDFRef): Promise<PDFLib.PDFDocument>;
|
|
encryptObject(num: number, val: PDFLib.PDFObject): void;
|
|
}
|
|
export declare class PdfSigner {
|
|
constructor(signopt: SignOption);
|
|
sign(pdf: PDFLib.PDFDocument | Array<number> | Uint8Array | ArrayBuffer | string, cypopt?: EncryptOption): Promise<Uint8Array>;
|
|
}
|
|
export declare class TsaFetcher {
|
|
constructor(inf: TsaServiceInfo);
|
|
url: string;
|
|
len: number;
|
|
getCertsChain(): CertsChain;
|
|
getToken(forP7?: boolean): forge.asn1.Asn1;
|
|
queryTsa(data?: string): Promise<string>;
|
|
}
|
|
export declare class PdfFonts {
|
|
private constructor();
|
|
static from(pdfdoc: PDFLib.PDFDocument): Promise<PdfFonts>;
|
|
getEmbeddedFont(fontData?: Array<number> | Uint8Array | ArrayBuffer | PDFLib.StandardFonts, subset?: boolean): Promise<PDFLib.PDFFont>;
|
|
}
|