// Copyright 2017-2025 @pezkuwi/util-crypto authors & contributors // SPDX-License-Identifier: Apache-2.0 import { randomAsU8a } from '../random/asU8a.js'; import { naclSecretbox } from './tweetnacl.js'; interface Encrypted { encrypted: Uint8Array; nonce: Uint8Array; } /** * @name naclEncrypt * @summary Encrypts a message using the supplied secretKey and nonce * @description * Returns an encrypted message, using the `secretKey` and `nonce`. If the `nonce` was not supplied, a random value is generated. * @example *
* * ```javascript * import { naclEncrypt } from '@pezkuwi/util-crypto'; * * naclEncrypt([...], [...]); // => [...] * ``` */ export function naclEncrypt (message: Uint8Array, secret: Uint8Array, nonce: Uint8Array = randomAsU8a(24)): Encrypted { return { encrypted: naclSecretbox(message, nonce, secret), nonce }; }