n8n
Version:
n8n Workflow Automation Tool
32 lines (31 loc) • 1.14 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { DeploymentKeyRepository } from '@n8n/db';
import type { CryptoKey, JWK } from 'jose';
import { Cipher } from 'n8n-core';
import { CacheService } from '../../services/cache/cache.service';
import { type JweKeyAlgorithm } from './oauth-jwe.constants';
type OAuthJweKeyPair = {
algorithm: JweKeyAlgorithm;
privateKey: CryptoKey;
publicKey: CryptoKey;
publicJwk: JWK;
kid: string;
};
export declare class OAuthJweKeyService {
private readonly deploymentKeyRepository;
private readonly cipher;
private readonly cacheService;
private readonly logger;
constructor(deploymentKeyRepository: DeploymentKeyRepository, cipher: Cipher, cacheService: CacheService, logger: Logger);
initialize(): Promise<void>;
getKeyPair(algorithm?: JweKeyAlgorithm): Promise<OAuthJweKeyPair>;
getPublicJwk(algorithm?: JweKeyAlgorithm): Promise<JWK>;
getPublicJwks(): Promise<JWK[]>;
private findEntry;
private loadData;
private deriveKeyPair;
private loadOrGenerate;
private readActiveEntry;
private generateAndPersist;
}
export {};