51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
/**
|
||
* 加密器接口
|
||
*/
|
||
export interface IEncryptor {
|
||
encrypt(plaintext: Uint8Array): Promise<Uint8Array>;
|
||
decrypt(ciphertext: Uint8Array): Promise<Uint8Array>;
|
||
name(): string;
|
||
}
|
||
|
||
/**
|
||
* 签名器接口
|
||
*/
|
||
export interface ISigner {
|
||
sign(data: Uint8Array): Promise<Uint8Array>;
|
||
verify(data: Uint8Array, signature: Uint8Array): Promise<boolean>;
|
||
}
|
||
|
||
/**
|
||
* 配置选项
|
||
*/
|
||
export interface CryptoConfig {
|
||
secretKey?: string; // 对称加密密钥
|
||
signKey?: string; // 签名密钥
|
||
publicKey?: string; // RSA公钥(PEM格式)
|
||
privateKey?: string; // RSA私钥(PEM格式)
|
||
timestampWindow?: number; // 时间戳窗口(毫秒)
|
||
enableTimestamp?: boolean; // 是否启用时间戳验证
|
||
enableSignature?: boolean; // 是否启用签名
|
||
}
|
||
|
||
/**
|
||
* 加密请求体
|
||
*/
|
||
export interface EncryptedRequest {
|
||
data: string; // Base64编码的加密数据
|
||
signature?: string; // Base64编码的签名
|
||
timestamp: number; // 时间戳
|
||
request_id: string; // 请求ID
|
||
algorithm: string; // 加密算法名称
|
||
}
|
||
|
||
/**
|
||
* 加密响应体
|
||
*/
|
||
export interface EncryptedResponse {
|
||
data: string; // Base64编码的加密数据
|
||
signature?: string; // Base64编码的签名
|
||
timestamp: number; // 时间戳
|
||
request_id: string; // 请求ID
|
||
}
|