Mercurial > projects > pwm
annotate README @ 33:fa93d2ff9c62
Prevent potential division by zero
Add safeguard ensuring that there is at least one possible character to
generate passwords from in order to exclude the possibility of a division by
zero error in rand_uniform.
author | Guido Berhoerster <guido+pwm@berhoerster.name> |
---|---|
date | Tue, 30 Jul 2019 20:38:08 +0200 |
parents | 55281f14dc9b |
children |
rev | line source |
---|---|
1
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
1 pwm |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
2 === |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
3 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
4 Description |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
5 ----------- |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
6 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
7 The pwm utility is a password manager which stores passwords and associated |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
8 metadata in an encrypted database protected by a master password. It has a |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
9 text-based user interface and can be used both interactively and |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
10 non-interactively. The database uses the PasswordSafe database format |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
11 version 3 and is thus compatible with other password managers using this |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
12 format. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
13 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
14 Build Instructions |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
15 ------------------ |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
16 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
17 pwm requires a POSIX:2004 compatible operating system, it has been tested to |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
18 work on Linux distributions, FreeBSD, NetBSD, OpenBSD, Solaris and |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
19 Illumos-derived distributions. The following tools and shared libraries are |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
20 required to build pwm: |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
21 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
22 - GNU make >= 3.81 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
23 - GNU or BSD install |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
24 - libtecla >= 1.6.0 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
25 - libpws >= 1.0.0 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
26 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
27 Rebuilding the man pages additionally requires the xsltproc tool from libxml2. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
28 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
29 Before building pwm check the commented macros in the Makefile for any |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
30 macros you may need to override depending on the used toolchain and operating |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
31 system. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
32 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
33 By default, all files will be installed under the "/usr/local" directory, a |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
34 different installation path prefix can be set via the `prefix` macro. In |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
35 addition, a second path prefix can be specified via the `DESTDIR` macro which |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
36 will be prepended to any path, incuding the `prefix` macro path prefix. In |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
37 contrast to `prefix`, the path specified via the `DESTDIR` macro will only be |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
38 prepended to paths during installation and not be used for constructing |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
39 internal paths. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
40 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
41 The following instructions assume that `make` is GNU make, on some platforms |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
42 it may be installed under a different name or a non-default path. In order to |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
43 start the build process run `make all`. After a successful build, run `make |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
44 install` to install the program, any associated data files and the |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
45 documentation. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
46 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
47 Previously built binaries, object files, generated data files and |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
48 documentation can be removed by running `make clean`, any additional, |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
49 generated files which are not removed by the `clean` target can be removed by |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
50 running `make clobber`. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
51 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
52 Contact |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
53 ------- |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
54 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
55 Please send any feedback, translations or bug reports via email to |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
56 <guido+pwm@berhoerster.name>. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
57 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
58 Bug Reports |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
59 ----------- |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
60 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
61 When sending bug reports, please always mention the exact version of pwm |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
62 with which the issue occurs as well as the version of the operating system you |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
63 are using and make sure that you provide sufficient information to reproduce |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
64 the issue and include any input, output, any error messages. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
65 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
66 In case of build issues, please also specify the implementations and versions |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
67 of the tools and shared libraries used to build the program, in particular the |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
68 compiler. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
69 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
70 In case of crashes, please generate a stack trace with a suitable debugger |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
71 such as gdb, lldb, dbx, or debug after a crash has occurred either by |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
72 examining the resulting core file or by running the program from the debugger |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
73 and attach it to the bug report. In order to generate a meaningful stack |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
74 trace the program as well as any dynamically linked libraries need to be built |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
75 with debugging information, see the documentation of the used compiler for the |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
76 required compiler flags. If any of the dynamically linked shared libraries do |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
77 not contain debugging information, please either install debugging information |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
78 for these libraries using mechanisms provided by your operating system or |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
79 rebuild the libraries accordingly. Please refer to the documentation of the |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
80 debugger for detailed instructions on generating backtraces. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
81 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
82 License |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
83 ------- |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
84 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
85 Except otherwise noted, all files are Copyright (C) 2017 Guido Berhoerster and |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
86 distributed under the following license terms: |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
87 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
88 Copyright (C) 2017 Guido Berhoerster <guido+pwm@berhoerster.name> |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
89 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
90 Permission is hereby granted, free of charge, to any person obtaining |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
91 a copy of this software and associated documentation files (the |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
92 "Software"), to deal in the Software without restriction, including |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
93 without limitation the rights to use, copy, modify, merge, publish, |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
94 distribute, sublicense, and/or sell copies of the Software, and to |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
95 permit persons to whom the Software is furnished to do so, subject to |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
96 the following conditions: |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
97 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
98 The above copyright notice and this permission notice shall be included |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
99 in all copies or substantial portions of the Software. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
100 |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
101 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
102 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
103 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
104 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
105 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
106 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
55281f14dc9b
Add README file and manpage
Guido Berhoerster <guido+pwm@berhoerster.name>
parents:
diff
changeset
|
107 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |