Skip to content

Commit b43ae92

Browse files
committed
docs: mention no audit and llm usage
1 parent a9c7874 commit b43ae92

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
[![npm version](https://img.shields.io/npm/v/libomemo.js.svg)](https://www.npmjs.com/package/libomemo.js)
55
[![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](http://www.gnu.org/licenses/gpl-3.0.html)
66

7+
> **Note:** this library has not yet undergone a formal third-party security
8+
> audit. Review the code before relying on it, and please report any suspected
9+
> vulnerability privately as described in [`SECURITY.md`](./SECURITY.md).
10+
711
**libomemo.js** is a TypeScript implementation of the [OMEMO Multi-End Message and Object Encryption](https://xmpp.org/extensions/xep-0384.html) protocol for [XMPP](https://xmpp.org).
812
It provides ratcheting forward secrecy for synchronous and asynchronous messaging environments, enabling secure multi-device encrypted communication.
913

@@ -320,10 +324,37 @@ Thank you to the [NLNet Foundation](https://nlnet.nl/) for sponsoring work on th
320324
wrappers in `native/ed25519/additions/omemo_convert.c` follow its approach so the on-wire
321325
identity-key encoding interoperates with libomemo-c-based clients such as Dino.
322326

327+
## LLM and GenAI usage
328+
329+
Large Language Models (DeepSeek 4 Pro, Qwen 3.7 max and Claude Opus 4.8) were used
330+
to assist with tasks such as writing code, editing text and research.
331+
332+
**Where AI was not used:** no cryptographic primitive or protocol logic was
333+
designed or invented by an LLM. The cryptographic core derives from established,
334+
widely-reviewed sources:
335+
336+
- [libsignal](https://github.com/signalapp/libsignal-protocol-javascript) for the Double Ratchet and X3DH
337+
- [libomemo-c](https://github.com/dino/libomemo-c) for the OMEMO 2 Curve25519 & Ed25519 operations
338+
339+
AI assistance was limited to porting, tests, tooling and documentation.
340+
341+
Correctness is checked independently of any AI:
342+
343+
- the test suite runs on Node.js and in a real browser (via Playwright) against
344+
known-answer test vectors;
345+
- the omemo:2 wire format is pinned by a cross-implementation interop vector
346+
generated by libomemo-c (the C library [Dino](https://dino.im) uses): the
347+
suite decrypts libomemo-c's real ciphertexts and verifies its signatures, and
348+
the reverse direction (libomemo-c decrypting this library's output) is
349+
confirmed out of band.
350+
351+
Any LLM-generated content is carefully and manually reviewed, as would any 3rd
352+
party contribution. A human maintainer remains responsible for every line
353+
regardless of how it was drafted.
354+
323355
## License
324356

325357
Copyright 2015-2018 Open Whisper Systems
326-
327358
Copyright 2022-2026 JC Brand
328359

329360
Licensed under the GPLv3: [http://www.gnu.org/licenses/gpl-3.0.html](http://www.gnu.org/licenses/gpl-3.0.html)

0 commit comments

Comments
 (0)