"Fossies" - the Fresh Open Source Software Archive 
Member "tin-2.6.2/libcanlock/README" (23 Aug 2021, 3858 Bytes) of package /linux/misc/tin-2.6.2.tar.xz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the last
Fossies "Diffs" side-by-side code changes report for "README":
2.4.5_vs_2.6.0.
1
2 libcanlock
3 ==========
4 A library for creating and verifying RFC 8315 Netnews Cancel-Locks.
5 This implementation uses the recommended algorithm from Section 4 with HMAC
6 based on the same hash function as <scheme>.
7
8
9 1) General
10 libcanlock is a standalone implementation without external dependencies.
11 If your program already uses a library that contains functions for hash and
12 base64 algorithms (e.g. OpenSSL), it is recommended that you use them instead
13 (to avoid code duplication).
14
15
16 2) System requirements
17 - POSIX.1-2001 compliant operating system
18 - C99 compiler with 'int' data type of at least 32 bit width
19
20 Note:
21 A POSIX style operating system is required only for the build system, the test
22 suite and the header parsers (see "canlock-hp" section below).
23 The code of the library and canlock utility is intended to be portable C99 (with
24 the exception that 16 bit platforms are not supported).
25
26 For reliable overwriting of secret data in memory, libcanlock needs explicit
27 memory access. The following functions are currently supported (automatically
28 detected by configure script, if available):
29 - memset_s() [available as option in C11 Annex K]
30 - explicit_memset() [available e.g. since NetBSD 7]
31 - explicit_bzero() [available e.g. since GNU libc 2.25]
32 If none of them can be used, memset() is used as fallback. But a "too smart"
33 compiler may optimize this call to NOP.
34
35
36 3) API
37 Since version 3 there is a new API available (hash algorithm independent).
38 Man pages for this API are installed together with the library.
39
40 Anything that is not documented should be considered as internal and not
41 part of the API. There is no portable way to hide all the internal stuff
42 completely, but expect that a future version may no longer export it without
43 notice.
44
45
46 4) Backward compatibility
47 The version 2 legacy API is still present by default, but it is now deprecated
48 and undocumented.
49 Including the header file from the new location, recompile and relink should
50 be sufficient to port an existing application to version 3 of the library.
51
52 The version 2 legacy API can be removed from the library with the configure
53 option "--disable-legacy-api".
54
55 Note: It is possible to install both, version 2 and version 3 of the library in
56 parallel.
57
58
59 5) Versioning scheme
60 With version 3 the release version scheme has changed.
61 Now the release version contains 3 numbers "x.y.z":
62
63 - Major (x)
64 The major number is incremented for every API/ABI change that is not backward
65 compatible.
66 - Minor (y)
67 The minor number is incremented for API/ABI extensions that are backward
68 compatible.
69 - Patch (z)
70 The patch number is incremented for changes that don't change the API/ABI.
71
72 In other words:
73 Releases with the same major and minor numbers are drop-in replacements.
74 Up- and downgrades between such versions are possible without touching
75 programs that use the library.
76 Releases with the same major, but different minor numbers are backward,
77 but not forward compatible. Upgrades are possible, downgrades can break
78 programs that use the library.
79 Releases with different major numbers require changes in all programs that
80 use the library.
81
82 Note: Compatibility is not guaranteed if different configure options are used!
83
84
85 6) pkg-config
86 Since version 3.2.0 pkg-config is supported with the configure option
87 "--enable-pc-files". With this option the data file "libcanlock-3.pc" is
88 installed.
89
90 The configure option "--with-pkgconfigdir" can be used to install this file
91 into a nonstandard location.
92
93
94 canlock
95 =======
96 Since version 3 the command line utility "canlock" is available as frontend.
97 The utility and a man page for it are installed together with the library.
98
99
100 canlock-hp
101 ==========
102 The formerly separate package canlock-hp was merged into version 3.1.0 (see
103 the README file in the "hp" subdirectory).
104
105 canlock-hp can be disabled with the configure option "--disable-hp".
106
107
108 EOF