26 lines
913 B
TypeScript
26 lines
913 B
TypeScript
import { IsBoolean, IsNotEmpty, ValidateIf } from 'class-validator';
|
|
import { AES_GCM_IV_BYTE_LENGTH } from '../../../consts/crypto/aesGcmIvByteLength';
|
|
import { IsBase64 } from '../../../validation/decorators/isBase64';
|
|
import { UploadCiphertextOptionsDto } from './UploadCiphertextOptionsDto';
|
|
|
|
export class CreateZkUploadDto extends UploadCiphertextOptionsDto {
|
|
@IsNotEmpty()
|
|
@IsBoolean()
|
|
passwordProtected: boolean;
|
|
|
|
@ValidateIf((dto: CreateZkUploadDto) => dto.passwordProtected === true)
|
|
@IsNotEmpty()
|
|
@IsBase64({ maxByteLength: 128 })
|
|
wrappedDek?: string;
|
|
|
|
@ValidateIf((dto: CreateZkUploadDto) => dto.passwordProtected === true)
|
|
@IsNotEmpty()
|
|
@IsBase64({ byteLength: AES_GCM_IV_BYTE_LENGTH })
|
|
wrapIv?: string;
|
|
|
|
@ValidateIf((dto: CreateZkUploadDto) => dto.passwordProtected === true)
|
|
@IsNotEmpty()
|
|
@IsBase64({ maxByteLength: 64 })
|
|
salt?: string;
|
|
}
|