File

src/crypto/key/key.service.ts

Description

Generic interface for a key service

Implements

OnModuleInit

Index

Properties
Methods

Properties

Public Abstract signer
Type : Signer

Methods

Abstract getKid
getKid()

Get the key id

Returns : Promise<string>
Abstract getPublicKey
getPublicKey(type)

Get the public key

Parameters :
Name Optional
type No
Returns : Promise<JWK>
Abstract getPublicKey
getPublicKey(type)
Parameters :
Name Optional
type No
Returns : Promise<string>
Abstract getPublicKey
getPublicKey(type: "pem" | "jwk")
Parameters :
Name Type Optional
type "pem" | "jwk" No
Returns : Promise<JWK | string>
Abstract init
init()

Initialize the key service

Returns : Promise<void>
Async onModuleInit
onModuleInit()
Returns : any
Abstract signJWT
signJWT(payload: JWTPayload, header: JoseHeaderParameters)

Returns the signature of the given value

Parameters :
Name Type Optional
payload JWTPayload No
header JoseHeaderParameters No
Returns : Promise<string>
import { OnModuleInit } from '@nestjs/common';
import { Signer } from '@sd-jwt/types';
import { JWK, JWTPayload, JoseHeaderParameters } from 'jose';

/**
 * Generic interface for a key service
 */
export abstract class KeyService implements OnModuleInit {
    public abstract signer: Signer;

    async onModuleInit() {
        await this.init();
    }

    /**
     * Initialize the key service
     */
    abstract init(): Promise<void>;

    /**
     * Get the key id
     * @returns
     */
    abstract getKid(): Promise<string>;

    /**
     * Get the public key
     * @returns
     */
    abstract getPublicKey(type: 'jwk'): Promise<JWK>;
    abstract getPublicKey(type: 'pem'): Promise<string>;
    abstract getPublicKey(type: 'pem' | 'jwk'): Promise<JWK | string>;

    /**
     * Returns the signature of the given value
     * @param value
     */
    // abstract sign(value: string): Promise<string>;

    abstract signJWT(
        payload: JWTPayload,
        header: JoseHeaderParameters,
    ): Promise<string>;
}

results matching ""

    No results matching ""