import { Authentication, CertificateType, SignatureAlgorithm, SubType } from "./Enums"

export interface IClientSignatureRequest {
    clientTag: string,
    token: string,
    certificateFileName: string,
    certificateKey: string,
    certificateAlgorithm: SignatureAlgorithm,
    certificateType: CertificateType
}

export interface IClientSignatureResponse {
    signature: string,
    encrypted: string
}

export interface ICertificateInfo {
    name: string;
    key: string;
    type: CertificateType;
    algorithm: SignatureAlgorithm;
}

interface IClientAuthenticationFlags {
    claimRegistrationRequired: boolean;
    tpaEnabled: boolean;
    clientDisplayName: string;    
}

export interface IClientAuthentication {
    clientTag: string;
    accountName: string;
    accountNumber: string;
    active: boolean;
    authentication: Authentication;
    certificateInfo: ICertificateInfo[];
    clientFlags: IClientAuthenticationFlags;
    parameters: string[];
    subType: SubType;
}