import PublicKey from '../primitives/PublicKey.js'; import PrivateKey from '../primitives/PrivateKey.js'; /** * Encrypts a message from one party to another using the BRC-78 message encryption protocol. * @param message The message to encrypt * @param sender The private key of the sender * @param recipient The public key of the recipient * * @returns The encrypted message */ /** * SECURITY NOTE – NON-AUTHENTICATED KEY EXCHANGE * * This encrypted message protocol does NOT implement a formally authenticated * key exchange (AKE). Session keys are deterministically derived from long-term * identity keys and a sender-chosen invoice value. * * As a result, this protocol does NOT provide: * - Forward secrecy * - Replay protection * - Explicit authentication of peer identity * * This scheme SHOULD NOT be used for high-value, long-lived, or sensitive * communications. It is intended for lightweight messaging where both parties * already possess each other's long-term public keys and accept these risks. * * Future versions may introduce a protocol upgrade based on a standard AKE * (e.g. X3DH, Noise, or SIGMA). */ export declare const encrypt: (message: number[], sender: PrivateKey, recipient: PublicKey) => number[]; /** * Decrypts a message from one party to another using the BRC-78 message encryption protocol. * @param message The message to decrypt * @param sender The private key of the recipient * * @returns The decrypted message */ export declare const decrypt: (message: number[], recipient: PrivateKey) => number[]; //# sourceMappingURL=EncryptedMessage.d.ts.map