"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