import { Decoder } from "./codec/tlsDecoder.js"; import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js"; import { CiphersuiteImpl } from "./crypto/ciphersuite.js"; export declare const pskTypes: { readonly external: 1; readonly resumption: 2; }; export type PSKTypeName = keyof typeof pskTypes; export type PSKType = (typeof pskTypes)[PSKTypeName]; export declare const pskTypeEncoder: BufferEncoder; export declare const encodePskType: Encoder; export declare const decodePskType: Decoder; /** @public */ export declare const resumptionPSKUsages: { readonly application: 1; readonly reinit: 2; readonly branch: 3; }; /** @public */ export type ResumptionPSKUsageName = keyof typeof resumptionPSKUsages; export type ResumptionPSKUsage = (typeof resumptionPSKUsages)[ResumptionPSKUsageName]; export declare const resumptionPSKUsageEncoder: BufferEncoder; export declare const encodeResumptionPSKUsage: Encoder; export declare const decodeResumptionPSKUsage: Decoder; /** @public */ export interface PSKInfoExternal { psktype: "external"; pskId: Uint8Array; } /** @public */ export interface PSKInfoResumption { psktype: "resumption"; usage: ResumptionPSKUsageName; pskGroupId: Uint8Array; pskEpoch: bigint; } /** @public */ export type PSKInfo = PSKInfoExternal | PSKInfoResumption; export declare const pskInfoEncoder: BufferEncoder; export declare const encodePskInfo: Encoder; export declare const decodePskInfo: Decoder; /** @public */ export type PSKNonce = { pskNonce: Uint8Array; }; /** @public */ export type PreSharedKeyID = PSKInfo & PSKNonce; export declare const pskIdEncoder: BufferEncoder; export declare const encodePskId: Encoder; export declare const decodePskId: Decoder; type PSKLabel = { id: PreSharedKeyID; index: number; count: number; }; export declare const pskLabelEncoder: BufferEncoder; export declare const encodePskLabel: Encoder; export declare const decodePskLabel: Decoder; export type PreSharedKeyIdExternal = PSKInfoExternal & PSKNonce; export type PreSharedKeyIdResumption = PSKInfoResumption & PSKNonce; export declare function computePskSecret(psks: [PreSharedKeyID, Uint8Array][], impl: CiphersuiteImpl): Promise>; export declare function updatePskSecret(secret: Uint8Array, pskId: PreSharedKeyID, psk: Uint8Array, index: number, count: number, impl: CiphersuiteImpl): Promise>; export {};