src/crypto/key/dto/key-import.dto.ts
JWK
Properties |
| alg |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:19
|
| crv |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:15
|
| d |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:17
|
| kid |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:7
|
| kty |
Type : string
|
Decorators :
@IsEnum(['EC'])
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:9
|
| x |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:11
|
| y |
Type : string
|
Decorators :
@IsString()
|
|
Defined in src/crypto/key/dto/key-import.dto.ts:13
|
import { Type } from "class-transformer";
import { IsEnum, IsOptional, IsString, ValidateNested } from "class-validator";
import { JWK } from "jose";
class Key implements JWK {
@IsString()
kid!: string; // Key ID
@IsEnum(["EC"])
kty!: string; // Key Type
@IsString()
x!: string; // X coordinate for EC keys
@IsString()
y!: string; // Y coordinate for EC keys
@IsString()
crv!: string; // Curve name for EC keys
@IsString()
d!: string; // Private key value for EC keys
@IsString()
alg!: string; // Algorithm used with the key
}
/**
* DTO for importing a key.
*/
export class KeyImportDto {
/**
* The private key in JWK format.
*/
@ValidateNested()
@Type(() => Key)
privateKey!: Key;
/**
* Optional certificate in PEM format.
*/
@IsString()
@IsOptional()
crt?: string;
/**
* Description of the key.
*/
@IsString()
@IsOptional()
description?: string;
}