export interface X25519KeyPair { /** 32-byte public u-coordinate. */ publicKey: Uint8Array; /** * 32-byte secret. Per RFC 7748 §5 / §6 this is "any 32 random bytes"; * clamping is applied internally on every WASM call. The stored * secretKey is the unclamped form so that round-tripping through * keygen / external storage preserves byte-equality. */ secretKey: Uint8Array; } /** * The X25519-relevant subset of the curve25519 WASM exports. The * curve25519 module is shared between Ed25519 and X25519; this interface * deliberately surfaces only the X25519 high-level entry points plus the * layout / wipe primitives. */ export interface X25519Exports { memory: WebAssembly.Memory; getModuleId: () => number; getMemoryPages: () => number; x25519Keygen: (skOff: number, pkOff: number) => void; x25519DH: (skOff: number, peerPkOff: number, sharedOff: number) => void; wipeBuffers: () => void; }