436a9631fc
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
2.6 KiB
TypeScript
57 lines
2.6 KiB
TypeScript
import { MemoLazy } from "builder-util-runtime";
|
|
import { Lazy } from "lazy-val";
|
|
import { Target } from "../core";
|
|
import { WindowsConfiguration } from "../options/winOptions";
|
|
import { VmManager } from "../vm/vm";
|
|
import { WinPackager } from "../winPackager";
|
|
import { SignManager } from "./signManager";
|
|
import { WindowsSignOptions } from "./windowsCodeSign";
|
|
export type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise<any>;
|
|
export interface WindowsSignToolOptions extends WindowsSignOptions {
|
|
readonly name: string;
|
|
readonly site: string | null;
|
|
}
|
|
export interface FileCodeSigningInfo {
|
|
readonly file: string;
|
|
readonly password: string | null;
|
|
}
|
|
export interface WindowsSignTaskConfiguration extends WindowsSignToolOptions {
|
|
readonly cscInfo: FileCodeSigningInfo | CertificateFromStoreInfo | null;
|
|
resultOutputPath?: string;
|
|
hash: string;
|
|
isNest: boolean;
|
|
}
|
|
export interface CustomWindowsSignTaskConfiguration extends WindowsSignTaskConfiguration {
|
|
computeSignToolArgs(isWin: boolean): Array<string>;
|
|
}
|
|
export interface CertificateInfo {
|
|
readonly commonName: string;
|
|
readonly bloodyMicrosoftSubjectDn: string;
|
|
}
|
|
export interface CertificateFromStoreInfo {
|
|
thumbprint: string;
|
|
subject: string;
|
|
store: string;
|
|
isLocalMachineStore: boolean;
|
|
}
|
|
export declare class WindowsSignToolManager implements SignManager {
|
|
private readonly packager;
|
|
private readonly platformSpecificBuildOptions;
|
|
constructor(packager: WinPackager);
|
|
readonly computedPublisherName: Lazy<string[] | null>;
|
|
readonly lazyCertInfo: MemoLazy<MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>, CertificateInfo | null>;
|
|
readonly cscInfo: MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>;
|
|
initialize(): Promise<void>;
|
|
computePublisherName(target: Target, publisherName: string): Promise<string>;
|
|
signFile(options: WindowsSignOptions): Promise<boolean>;
|
|
getCertInfo(file: string, password: string): Promise<CertificateInfo>;
|
|
computeSignToolArgs(options: WindowsSignTaskConfiguration, isWin: boolean, vm?: VmManager): Array<string>;
|
|
private computeWindowsSignArgs;
|
|
private computeOsslsigncodeArgs;
|
|
private addCertificateArgs;
|
|
private addCommonSigningArgs;
|
|
getOutputPath(inputPath: string, hash: string): string;
|
|
getCertificateFromStoreInfo(options: WindowsConfiguration, vm: VmManager): Promise<CertificateFromStoreInfo>;
|
|
doSign(configuration: CustomWindowsSignTaskConfiguration, packager: WinPackager): Promise<void>;
|
|
}
|