Marco Ricci commited on 2025-01-07 23:49:22
Zeige 4 geänderte Dateien mit 31 Einfügungen und 6 Löschungen.
... | ... |
@@ -1266,10 +1266,10 @@ |
1266 | 1266 |
<p><a href="https://pypi.org/project/derivepassphrase"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/derivepassphrase.svg" /></a> |
1267 | 1267 |
<a href="https://pypi.org/project/derivepassphrase"><img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/derivepassphrase.svg" /></a></p> |
1268 | 1268 |
<p>An almost faithful Python reimplementation of <a href="https://www.npmjs.com/package/vault">James Coglan’s <code>vault</code></a>, a deterministic password manager/generator.</p> |
1269 |
-<p>Using a master passphrase or a master SSH key, derive a passphrase for a given named service, subject to length, character and character repetition constraints. |
|
1270 |
-The derivation is cryptographically strong, meaning that even if a single passphrase is compromised, guessing the master passphrase or a different service’s passphrase is computationally infeasible. |
|
1271 |
-The derivation is also deterministic, given the same inputs, thus the resulting passphrase need not be stored explicitly. |
|
1272 |
-The service name and constraints themselves also need not be kept secret; the latter are usually stored in a world-readable file.</p> |
|
1269 |
+<p>Using a master passphrase or a master SSH key, derive a passphrase for a given named service, subject to length, character and character repetition constraints.</p> |
|
1270 |
+<p>The derivation is <em>strong</em>: derived passphrases have as much entropy as permitted by the master passphrase and the passphrase constraints (whichever is more restrictive), and even if multiple derived passphrases are compromised, the master passphrase remains cryptographically difficult to discern from these compromised passphrases. |
|
1271 |
+The derivation is also <em>deterministic</em>, given the same inputs, thus the resulting passphrase need not be stored explicitly.</p> |
|
1272 |
+<p>The service name and constraints themselves also need not be kept secret; the latter are usually stored in a world-readable file to ease repeated entry of passphrase constraints.</p> |
|
1273 | 1273 |
<hr /> |
1274 | 1274 |
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">¶</a></h2> |
1275 | 1275 |
<h3 id="with-pip">With <code>pip</code><a class="headerlink" href="#with-pip" title="Permanent link">¶</a></h3> |
... | ... |
@@ -1282,7 +1282,9 @@ The service name and constraints themselves also need not be kept secret; the la |
1282 | 1282 |
<h3 id="manually">Manually<a class="headerlink" href="#manually" title="Permanent link">¶</a></h3> |
1283 | 1283 |
<p><code>derivepassphrase</code> is a pure Python package, and may be easily installed manually by placing the respective files and the package’s dependencies into Python’s import path. |
1284 | 1284 |
<code>derivepassphrase</code> requires Python 3.9 or higher as well as the <a href="https://pypi.org/project/typing-extensions/">typing-extensions package</a> for its core functionality and programmatic interface, and <a href="https://pypi.org/project/click/"><code>click</code></a> 8.1 or higher for its command-line interface. |
1285 |
+On Python 3.9 and 3.10 only, <code>derivepassphrase</code> additionally requires the <a href="https://pypi.org/project/tomli/">tomli package</a>. |
|
1285 | 1286 |
Using the <code>export vault</code> subcommand additionally requires the <a href="https://pypi.org/project/cryptography/">cryptography package</a>, version 38.0 or newer.</p> |
1287 |
+<p><code>derivepassphrase</code> works just fine on PyPy.</p> |
|
1286 | 1288 |
<h2 id="quick-usage">Quick Usage<a class="headerlink" href="#quick-usage" title="Permanent link">¶</a></h2> |
1287 | 1289 |
<p><code>derivepassphrase</code> is designed to principally support multiple passphrase derivation schemes, but currently only the “<a href="https://www.npmjs.com/package/vault">vault</a>” scheme is implemented.</p> |
1288 | 1290 |
<p>Using the passphrase <code>This passphrase is for demonstration purposes only.</code> when prompted:</p> |
... | ... |
@@ -1911,7 +1911,7 @@ Further details are contained in the variable part of the message.</p> |
1911 | 1911 |
<p>(Exactly what it says.)</p> |
1912 | 1912 |
</details> |
1913 | 1913 |
<details class="failure"> |
1914 |
-<summary><code>Cannot update %s settings without actual settings.</code></summary> |
|
1914 |
+<summary><code>Cannot update the %s settings without actual settings.</code></summary> |
|
1915 | 1915 |
<p>Using <code>--config</code> requires at least one of the <code>--phrase</code>, <code>--key</code>, <code>--length</code>, etc. options.</p> |
1916 | 1916 |
</details> |
1917 | 1917 |
<details class="failure"> |
... | ... |
@@ -3254,6 +3254,29 @@ string is used as the binary password.</p> |
3254 | 3254 |
</table> |
3255 | 3255 |
|
3256 | 3256 |
|
3257 |
+<p><span class="doc-section-title">Raises:</span></p> |
|
3258 |
+ <table> |
|
3259 |
+ <thead> |
|
3260 |
+ <tr> |
|
3261 |
+ <th>Type</th> |
|
3262 |
+ <th>Description</th> |
|
3263 |
+ </tr> |
|
3264 |
+ </thead> |
|
3265 |
+ <tbody> |
|
3266 |
+ <tr class="doc-section-item"> |
|
3267 |
+ <td> |
|
3268 |
+ <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code> |
|
3269 |
+ </td> |
|
3270 |
+ <td> |
|
3271 |
+ <div class="doc-md-description"> |
|
3272 |
+ <p>The password must not be empty.</p> |
|
3273 |
+ </div> |
|
3274 |
+ </td> |
|
3275 |
+ </tr> |
|
3276 |
+ </tbody> |
|
3277 |
+ </table> |
|
3278 |
+ |
|
3279 |
+ |
|
3257 | 3280 |
<details class="warning" open> |
3258 | 3281 |
<summary>Warning</summary> |
3259 | 3282 |
<p>Non-public class, provided for didactical and educational |
... | ... |
@@ -730,7 +730,7 @@ There was a system error communicating with the SSH agent. |
730 | 730 |
.It Not saving any new notes: the user aborted the request. |
731 | 731 |
(Exactly what it says.) |
732 | 732 |
. |
733 |
-.It Cannot update %s settings without actual settings. |
|
733 |
+.It Cannot update the %s settings without actual settings. |
|
734 | 734 |
Using |
735 | 735 |
.Fl \-config |
736 | 736 |
requires at least one of the |
737 | 737 |