You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-5Lines changed: 12 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,11 @@
1
1
# noisytransfer-cli
2
+
> This CLI serves as an experimental playground for PQ-secure, end-to-end encrypted file transfer. In the short to medium term, this CLI will be optimized, and the insights will feed into a yet-to-be-built application for browsers and mobile devices. When those applications are released, this CLI will be ported to a language better suited to CLI apps (e.g., Rust or Go).
2
3
3
-
Fast end-to-end encrypted (E2EE) file transfer over WebRTC with short, human-readable pairing codes. The CLI speaks DTLS by default and can opt-in to a post-quantum (PQ) handshake with SAS confirmation.
4
+
Fast end-to-end encrypted (E2EE) file transfer over WebRTC with short, human-readable pairing codes. The CLI speaks DTLS by default and can opt-in to a post-quantum (PQ) handshake with SAS confirmation. Additional documentation can be found [here](https://whitenoise.systems/tools/docs/cli/).
4
5
5
6
## Installation
6
7
7
-
Requires Node.js **22 or newer** for development builds.
8
+
Requires Node.js **22 or newer**.
8
9
9
10
### npm
10
11
@@ -69,8 +70,8 @@ Pass `--pq`:
69
70
```bash
70
71
# sender prints "Code: 5527e74d-pq"
71
72
nt send ./big.iso --pq
72
-
> Code: 4932
73
-
# receiver can use the suffix, or just --pq explicitly
73
+
> Code: 1234-pq
74
+
# receiver can use the code.
74
75
nt recv 1234-pq ./downloads
75
76
```
76
77
@@ -80,7 +81,7 @@ nt recv 1234-pq ./downloads
80
81
- Multi-path sends are **tarred**; receiver writes `bundle.tar`. If a file exists and `--overwrite` is not set, the receiver dedupes as `bundle-1.tar`, `bundle-2.tar`, …
81
82
-`--overwrite`: replace existing file instead of deduping.
82
83
-`-y, --yes`: auto-accept SAS (useful for non-interactive invocations). Does **not** imply `--overwrite`.
83
-
-`-v` (repeatable): increase verbosity; includes `[NT_DEBUG]` traces.
84
+
-`-v`: increase verbosity; includes `[NT_DEBUG]` traces.
84
85
- Filenames are sanitized on the receiver (no path traversal / reserved names). Output directory is always the **receiver’s** choice.
85
86
86
87
## Build from source
@@ -107,6 +108,12 @@ npm pack
107
108
- Rendezvous codes are short-lived; both sides display a 6-digit SAS you can compare out-of-band.
108
109
- The receiver owns the destination directory; announced filenames are sanitized to safe **leaf** names.
109
110
111
+
## Current Limitations
112
+
- The encoding of frames is currently extremely inefficient, which reduce the theoretical optimal throughput by roughly 4x in default DTLS and 5x in the PQ-case.
113
+
-`XWING` is a good alternative to the deprecated `HybridkemX25519Kyber768` standard that is currently used here. But there are caveats that are discussed [here](https://github.com/dajiaji/hpke-js/issues/545). Currently i'm reviewing the [starfighter](https://eprint.iacr.org/2025/1397.pdf) publication, which might shift my opinion towards starfighter.
114
+
- Binary distributables are planned. Linux distributables work and have been tested with pkg and SEA on Ubuntu 22 and newer. However, .exe distributables on Windows are more complex and currently out of scope; see [issue #39](https://github.com/WonderInventions/node-webrtc/issues/39) in the node-webrtc fork. Nothing has been tested on macOS yet.
115
+
116
+
110
117
## Future features
111
118
Status: currently disabled/broken; will be re-enabled with proper tests.
0 commit comments