]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.texi
Fix not occurring handshake messages padding
[nncp.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @node Release 5.3.0
7 @section Release 5.3.0
8 @itemize
9
10 @item
11 Progress messages contain prefix, describing the running action.
12
13 @item
14 Fixed not occurring handshake messages padding.
15
16 @end itemize
17
18 @node Release 5.2.1
19 @section Release 5.2.1
20 @itemize
21
22 @item
23 Fixed SP protocol error handling, sometimes causing program panic.
24
25 @end itemize
26
27 @node Release 5.2.0
28 @section Release 5.2.0
29 @itemize
30
31 @item
32 Most commands by default show oneline operations progress.
33 @option{-progress}, @option{-noprogress} command line options,
34 @option{noprogress} configuration file option appeared.
35
36 @item
37 Fixed incorrect @command{nncp-check} command return code, that returned
38 bad code when everything is good.
39
40 @item
41 Free disk space check during @command{nncp-bundle -rx} call.
42
43 @end itemize
44
45 @node Release 5.1.2
46 @section Release 5.1.2
47 @itemize
48
49 @item
50 @strong{Critical} vulnerability: remote peers authentication could lead
51 to incorrect identification of remote side, allowing foreign encrypted
52 packets downloading.
53
54 @item
55 Bugfix: private and public Noise keys were swapped in newly created
56 configuration files, that lead to inability to authenticate online peers.
57
58 @item
59 Explicit directories fsync-ing for guaranteed files renaming.
60
61 @end itemize
62
63 @node Release 5.1.1
64 @section Release 5.1.1
65 @itemize
66
67 @item
68 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
69
70 @end itemize
71
72 @node Release 5.1.0
73 @section Release 5.1.0
74 @itemize
75
76 @item
77 @command{nncp-file} can send directories, automatically creating pax
78 archive on the fly.
79
80 @item
81 Free disk space is checked during outbound packets creation.
82
83 @item
84 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
85 file options replaced with the structure:
86 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
87
88 @item
89 Added @option{freq.maxsize} configuration file option, forbidding of
90 freq sending larger than specified size.
91
92 @item
93 Ability to notify about successfully executed commands (exec) with
94 @option{notify.exec} configuration file option.
95
96 @end itemize
97
98 @node Release 5.0.0
99 @section Release 5.0.0
100 @itemize
101
102 @item
103 @strong{Incompatible} configuration file format change: YAML is
104 replaced with Hjson, due to its simplicity, without noticeable lack
105 of either functionality or convenience.
106
107 @item
108 @strong{Incompatible} plain packet format changes. Older versions are
109 not supported. @code{zlib} compression is replaced with
110 @code{Zstandard}, due to its speed and efficiency, despite library
111 version is not mature enough.
112
113 @item
114 Ability to call remote nodes via pipe call of external command, not only
115 through TCP.
116
117 @item
118 @command{nncp-cfgnew} generates configuration file with many
119 comments. @option{-nocomments} option can be used for an old
120 behaviour.
121
122 @item
123 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
124 avoid possible collisions with @file{.nncp.chunkCTR}.
125
126 @item
127 Ability to override process umask through configuration file option.
128
129 @item
130 Files and directories are created with 666/777 permissions by default,
131 allowing control with @command{umask}.
132
133 @item
134 Updated dependencies.
135
136 @item
137 Full usage of go modules for dependencies management
138 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
139
140 @item
141 Forbid any later GNU GPL version autousage
142 (project's licence now is GNU GPLv3-only).
143
144 @end itemize
145
146 @node Release 4.1
147 @section Release 4.1
148 @itemize
149 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
150 @end itemize
151
152 @node Release 4.0
153 @section Release 4.0
154 @itemize
155
156 @item
157 @strong{Incompatible} encrypted and eblob packet format change: AEAD
158 encryption mode with 128 KiB blocks is used now, because previously
159 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
160 decrypted data to external command. Older versions are not supported.
161
162 @item
163 Available free space checking before copying in @command{nncp-xfer},
164 @command{nncp-daemon}, @command{nncp-call(er)}.
165
166 @item
167 @command{nncp-call} has ability only to list packets on remote node,
168 without their transmission.
169
170 @item
171 @command{nncp-call} has ability to transfer only specified packets.
172
173 @item
174 Workability of @option{xxrate} preference in @option{calls}
175 configuration file section.
176
177 @item
178 Dependant libraries are updated.
179
180 @item
181 Minor bugfixes.
182
183 @item
184 Begin using of @code{go.mod} subsystem.
185
186 @end itemize
187
188 @node Release 3.4
189 @section Release 3.4
190 @itemize
191 @item @command{nncp-daemon} can be run as @command{inetd}-service.
192 @end itemize
193
194 @node Release 3.3
195 @section Release 3.3
196 @itemize
197
198 @item
199 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
200 if @file{.seen} exists and treat it like file was already downloaded.
201 Possibly it was transferred out-of-bound and remote side needs to be
202 notifier about that.
203
204 @item
205 If higher priority packet is spooled, then @command{nncp-daemon} will
206 queue its sending first, interrupting lower priority transmissions.
207
208 @item
209 Simple packet rate limiter added to online-related tools
210 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
211
212 @item
213 Ability to specify niceness with symbolic notation:
214 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
215
216 @item
217 Changed default niceness levels:
218 for @command{nncp-exec} from 64 to 96,
219 for @command{nncp-freq} from 64 to 160,
220 for @command{nncp-file} from 196 to 224.
221
222 @end itemize
223
224 @node Release 3.2
225 @section Release 3.2
226 @itemize
227 @item
228 @strong{Incompatible} @emph{bundle} archive format changes and
229 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
230 valid tar archives, but Go 1.9 made them invalid because of long paths
231 inside. NNCP accidentally was dependant on that bug. Explicit adding of
232 @file{NNCP/} directory in archive restores workability with valid tar
233 archives.
234 @end itemize
235
236 @node Release 3.1
237 @section Release 3.1
238 @itemize
239 @item
240 Ability to disable relaying at all using @verb{|-via -|} command line option.
241 @end itemize
242
243 @node Release 3.0
244 @section Release 3.0
245 @itemize
246
247 @item
248 @strong{Incompatible} plain packet format changes. Older versions are
249 not supported.
250
251 @item
252 Ability to queue remote command execution, by configuring @option{exec}
253 option in configuration file and using @command{nncp-exec} command:
254     @itemize
255     @item
256     @command{nncp-mail} command is replaced with more flexible
257     @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
258     you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
259     @item
260     @option{sendmail} configuration file option is replaced with
261     @option{exec}. @verb{|sendmail: [...]|} must be replaced with
262     @verb{|exec: sendmail: [...]|}.
263     @end itemize
264
265 @item
266 Ability to override @option{via} configuration option for destination
267 node via @option{-via} command line option for following commands:
268 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
269
270 @item
271 Chunked files, having size less than specified chunk size, will be sent
272 as an ordinary single file.
273
274 @item
275 Exec commands are invoked with additional @env{NNCP_NICE} and
276 @env{NNCP_SELF} environment variables.
277
278 @item
279 Files, that are sent as a reply to freq, have niceness level taken from
280 the freq packet. You can set desired niceness during @command{nncp-freq}
281 invocation using @option{-replynice} option.
282
283 @item
284 @command{nncp-toss} command can ignore specified packet types during
285 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
286 @option{-notrns}.
287
288 @item
289 @command{nncp-file} command uses
290 @option{FreqMinSize}/@option{FreqChunked} configuration file options
291 for @option{-minsize}/@option{-chunked} by default. You can turn this
292 off by specifying zero value.
293
294 @end itemize
295
296 @node Release 2.0
297 @section Release 2.0
298 @itemize
299
300 @item
301 @strong{Incompatible} encrypted/eblob packet format changes. Older
302 versions are not supported.
303
304 @item
305 Twofish encryption algorithm is replaced with ChaCha20. It is much more
306 faster. One cryptographic primitive less.
307
308 @item
309 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
310 another cryptographic primitive less (assuming that BLAKE2X is nearly
311 identical to BLAKE2).
312
313 @end itemize
314
315 @node Release 1.0
316 @section Release 1.0
317 @itemize
318
319 @item
320 @strong{Incompatible} encrypted packet format changes. Older versions
321 are not supported.
322
323 @item
324 @command{nncp-bundle} command can either create stream of encrypted
325 packets, or digest it. It is useful when dealing with stdin/stdout based
326 transmission methods (like writing to CD-ROM without intermediate
327 prepared ISO image and working with tape drives).
328
329 @item
330 @command{nncp-toss} is able to create @file{.seen} files preventing
331 duplicate packets receiving.
332
333 @item
334 Single background checksum verifier worker is allowed in
335 @command{nncp-call}. This is helpful when thousands of small inbound
336 packets could create many goroutines.
337
338 @item
339 Ability to override path to spool directory and logfile through either
340 command line argument, or environment variable.
341
342 @item
343 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
344 @file{.part}, @file{.lock} and temporary files.
345
346 @end itemize
347
348 @node Release 0.12
349 @section Release 0.12
350 @itemize
351 @item Sendmail command is called with @env{NNCP_SENDER} environment variable.
352 @end itemize
353
354 @node Release 0.11
355 @section Release 0.11
356 @itemize
357 @item @command{nncp-stat}'s command output is sorted by node name.
358 @end itemize
359
360 @node Release 0.10
361 @section Release 0.10
362 @itemize
363 @item
364 @command{nncp-freq}'s @file{DST} argument is optional now. Last
365 @file{SRC} path's element will be used by default.
366 @end itemize
367
368 @node Release 0.9
369 @section Release 0.9
370 @itemize
371 @item
372 Fix @option{-rx}/@option{-tx} arguments processing in
373 @command{nncp-call} command. They were ignored.
374 @end itemize
375
376 @node Release 0.8
377 @section Release 0.8
378 @itemize
379 @item
380 Little bugfix in @command{nncp-file} command, where @option{-minsize}
381 option for unchunked transfer was not in KiBs, but in bytes.
382 @end itemize
383
384 @node Release 0.7
385 @section Release 0.7
386 @itemize
387
388 @item
389 Ability to feed @command{nncp-file} from stdin, that uses an encrypted
390 temporary file for that.
391
392 @item
393 Chunked files transmission appeared with corresponding
394 @command{nncp-reass} command and @option{freqchunked} configuration file
395 entry. Useful for transferring big files over small storage devices.
396
397 @item
398 @option{freqminsize} configuration file option, analogue to
399 @option{-minsize} one.
400
401 @item
402 @command{nncp-xfer}'s @option{-force} option is renamed to
403 @option{-mkdir} for clarity.
404
405 @item
406 @option{-minsize} option is specified in KiBs, not bytes, for
407 convenience.
408
409 @item
410 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
411 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
412 common prefix and are grouped together for convenience.
413
414 @item
415 @command{nncp-cfgenc} command appeared, allowing configuration file
416 encryption/decryption, for keeping it safe without any either OpenPGP or
417 similar tools usage.
418
419 @item
420 Cryptographic libraries (dependencies) are updated.
421
422 @end itemize
423
424 @node Release 0.6
425 @section Release 0.6
426 @itemize
427 @item Small @command{nncp-rm} command appeared.
428 @item Cryptographic libraries (dependencies) are updated.
429 @end itemize
430
431 @node Release 0.5
432 @section Release 0.5
433 @itemize
434 @item
435 Trivial small fix in default niceness level of @command{nncp-file}
436 and @command{nncp-freq} commands.
437 @end itemize
438
439 @node Release 0.4
440 @section Release 0.4
441 @itemize
442
443 @item
444 Small fix in @command{nncp-call}, @command{nncp-caller},
445 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
446 lost).
447
448 @item
449 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
450 and more convenient to use.
451
452 @item
453 @command{nncp-mincfg} command appeared: helper allowing to create
454 minimalistic stripped down configuration file without private keys, that
455 is useful during @command{nncp-xfer} usage.
456
457 @end itemize
458
459 @node Release 0.3
460 @section Release 0.3
461 @itemize
462 @item Fixed compatibility with Go 1.6.
463 @end itemize
464
465 @node Release 0.2
466 @section Release 0.2
467 @itemize
468
469 @item
470 @strong{Incompatible} packet's format change (magic number is changed
471 too): size field is encrypted and is not send in plaintext anymore.
472
473 @item
474 @option{-minsize} option gives ability to automatically pad outgoing
475 packets to specified minimal size.
476
477 @item
478 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
479 always check new @emph{tx} packets appearance in the background while
480 connected. Remote side is immediately notified.
481
482 @item
483 @option{-onlinedeadline} option gives ability to configure timeout of
484 inactivity of online connection, when it could be disconnected. It could
485 be used to keep connection alive for a long time.
486
487 @item
488 @option{-maxonlinetime} option gives ability to set maximal allowable
489 online connection aliveness time.
490
491 @item
492 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
493
494 @item
495 @command{nncp-pkt} command can decompress the data.
496
497 @end itemize