git.schokokeks.org
Repositories
Help
Report an Issue
derivepassphrase.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
382c592
Branches
Tags
documentation-tree
master
0.1.0
0.1.1
0.1.2
0.1.3
0.2.0
0.3.0
0.3.1
0.3.2
derivepassphrase.git
0.x
index.html
Deployed df459996c5d0 to 0.x with MkDocs 1.6.1 and mike 2.1.3
Marco Ricci
commited
382c592
at 2024-09-12 14:12:34
index.html
Blame
History
Raw
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="An almost faithful Python reimplementation of James Coglan's vault."> <meta name="author" content="Marco Ricci"> <link rel="canonical" href="https://the13thletter.info/derivepassphrase/0.x/"> <link rel="next" href="reference/"> <link rel="icon" href="assets/images/favicon.png"> <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.34"> <title>derivepassphrase</title> <link rel="stylesheet" href="assets/stylesheets/main.35f28582.min.css"> <style>:root{--md-text-font:"Noto Sans";--md-code-font:"Noto Mono"}</style> <link rel="stylesheet" href="assets/_mkdocstrings.css"> <link rel="stylesheet" href="mkdocstrings_recommended_styles.css"> </head> <body dir="ltr"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#derivepassphrase" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <div data-md-color-scheme="default" data-md-component="outdated" hidden> </div> <div class="md-container" data-md-component="container"> <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> <div class="md-grid"> <ul class="md-tabs__list"> <li class="md-tabs__item md-tabs__item--active"> <a href="." class="md-tabs__link"> Overview </a> </li> <li class="md-tabs__item"> <a href="reference/" class="md-tabs__link"> Reference </a> </li> <li class="md-tabs__item"> <a href="changelog/" class="md-tabs__link"> Changelog </a> </li> </ul> </div> </nav> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="." title="derivepassphrase" class="md-nav__button md-logo" aria-label="derivepassphrase" data-md-component="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> derivepassphrase </label> <div class="md-nav__source"> <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg> </div> <div class="md-source__repository"> the-13th-letter/derivepassphrase </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> <span class="md-ellipsis"> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <a href="." class="md-nav__link md-nav__link--active"> <span class="md-ellipsis"> Overview </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#installation" class="md-nav__link"> <span class="md-ellipsis"> Installation </span> </a> <nav class="md-nav" aria-label="Installation"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#with-pip" class="md-nav__link"> <span class="md-ellipsis"> With pip </span> </a> </li> <li class="md-nav__item"> <a href="#manually" class="md-nav__link"> <span class="md-ellipsis"> Manually </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#quick-usage" class="md-nav__link"> <span class="md-ellipsis"> Quick Usage </span> </a> </li> <li class="md-nav__item"> <a href="#license" class="md-nav__link"> <span class="md-ellipsis"> License </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" > <div class="md-nav__link md-nav__container"> <a href="reference/" class="md-nav__link "> <span class="md-ellipsis"> Reference </span> </a> <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0"> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Reference </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="reference/derivepassphrase.1/" class="md-nav__link"> <span class="md-ellipsis"> Man page: derivepassphrase </span> </a> </li> <li class="md-nav__item"> <a href="reference/derivepassphrase-vault.1/" class="md-nav__link"> <span class="md-ellipsis"> Man page: derivepassphrase-vault </span> </a> </li> <li class="md-nav__item"> <a href="reference/derivepassphrase-export.1/" class="md-nav__link"> <span class="md-ellipsis"> Man page: derivepassphrase-export </span> </a> </li> <li class="md-nav__item"> <a href="reference/derivepassphrase-export-vault.1/" class="md-nav__link"> <span class="md-ellipsis"> Man page: derivepassphrase-export-vault </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" > <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0"> <span class="md-ellipsis"> Module derivepassphrase </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2_6"> <span class="md-nav__icon md-icon"></span> Module derivepassphrase </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="reference/derivepassphrase/" class="md-nav__link"> <span class="md-ellipsis"> Submodule cli </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6_2" > <label class="md-nav__link" for="__nav_2_6_2" id="__nav_2_6_2_label" tabindex="0"> <span class="md-ellipsis"> Subpackage exporter </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_6_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2_6_2"> <span class="md-nav__icon md-icon"></span> Subpackage exporter </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="reference/exporter/" class="md-nav__link"> <span class="md-ellipsis"> Subpackage exporter </span> </a> </li> <li class="md-nav__item"> <a href="reference/exporter_vault/" class="md-nav__link"> <span class="md-ellipsis"> Exporters for vault </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="reference/sequin/" class="md-nav__link"> <span class="md-ellipsis"> Submodule sequin </span> </a> </li> <li class="md-nav__item"> <a href="reference/ssh_agent/" class="md-nav__link"> <span class="md-ellipsis"> Submodule ssh_agent </span> </a> </li> <li class="md-nav__item"> <a href="reference/types/" class="md-nav__link"> <span class="md-ellipsis"> Submodule _types </span> </a> </li> <li class="md-nav__item"> <a href="reference/vault/" class="md-nav__link"> <span class="md-ellipsis"> Submodule vault </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="changelog/" class="md-nav__link"> <span class="md-ellipsis"> Changelog </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#installation" class="md-nav__link"> <span class="md-ellipsis"> Installation </span> </a> <nav class="md-nav" aria-label="Installation"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#with-pip" class="md-nav__link"> <span class="md-ellipsis"> With pip </span> </a> </li> <li class="md-nav__item"> <a href="#manually" class="md-nav__link"> <span class="md-ellipsis"> Manually </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#quick-usage" class="md-nav__link"> <span class="md-ellipsis"> Quick Usage </span> </a> </li> <li class="md-nav__item"> <a href="#license" class="md-nav__link"> <span class="md-ellipsis"> License </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/index.md" title="View source of this page" class="md-content__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg> </a> <h1 id="derivepassphrase">derivepassphrase<a class="headerlink" href="#derivepassphrase" title="Permanent link">¶</a></h1> <p><a href="https://pypi.org/project/derivepassphrase"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/derivepassphrase.svg" /></a> <a href="https://pypi.org/project/derivepassphrase"><img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/derivepassphrase.svg" /></a></p> <p>An almost faithful Python reimplementation of <a href="https://getvau.lt">James Coglan’s <code>vault</code></a>, a deterministic password manager/generator.</p> <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. 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. The derivation is also deterministic, given the same inputs, thus the resulting passphrase need not be stored explicitly. The service name and constraints themselves also need not be kept secret; the latter are usually stored in a world-readable file.</p> <hr /> <h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">¶</a></h2> <h3 id="with-pip">With <code>pip</code><a class="headerlink" href="#with-pip" title="Permanent link">¶</a></h3> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>pip<span class="w"> </span>install<span class="w"> </span>derivepassphrase </code></pre></div> <h3 id="manually">Manually<a class="headerlink" href="#manually" title="Permanent link">¶</a></h3> <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. <code>derivepassphrase</code> requires Python 3.10 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://click.palletsprojects.com/"><code>click</code></a> 8.1 or higher for its command-line interface. Using the <code>export vault</code> subcommand additionally requires the <a href="https://github.com/pyca/cryptography">cryptography package</a>, version 38.0 or newer.</p> <h2 id="quick-usage">Quick Usage<a class="headerlink" href="#quick-usage" title="Permanent link">¶</a></h2> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>derivepassphrase<span class="w"> </span>vault<span class="w"> </span>-p<span class="w"> </span>--length<span class="w"> </span><span class="m">30</span><span class="w"> </span>--upper<span class="w"> </span><span class="m">3</span><span class="w"> </span>--lower<span class="w"> </span><span class="m">1</span><span class="w"> </span>--number<span class="w"> </span><span class="m">2</span><span class="w"> </span>--space<span class="w"> </span><span class="m">0</span><span class="w"> </span>--symbol<span class="w"> </span><span class="m">0</span><span class="w"> </span>my-email-account <span class="go">Passphrase: This passphrase is for demonstration purposes only.</span> <span class="go">JKeet7GeBpxysOgdCEJo6UzmP8A0Ih</span> </code></pre></div> <p>Some time later…</p> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>derivepassphrase<span class="w"> </span>vault<span class="w"> </span>-p<span class="w"> </span>--length<span class="w"> </span><span class="m">30</span><span class="w"> </span>--upper<span class="w"> </span><span class="m">3</span><span class="w"> </span>--lower<span class="w"> </span><span class="m">1</span><span class="w"> </span>--number<span class="w"> </span><span class="m">2</span><span class="w"> </span>--space<span class="w"> </span><span class="m">0</span><span class="w"> </span>--symbol<span class="w"> </span><span class="m">0</span><span class="w"> </span>my-email-account <span class="go">Passphrase: This passphrase is for demonstration purposes only.</span> <span class="go">JKeet7GeBpxysOgdCEJo6UzmP8A0Ih</span> </code></pre></div> <p>(The user input <code>This passphrase is for demonstration purposes only.</code> for the passphrase prompt is not actually displayed on-screen.)</p> <h2 id="license">License<a class="headerlink" href="#license" title="Permanent link">¶</a></h2> <p><code>derivepassphrase</code> is distributed under the terms of the <a href="https://spdx.org/licenses/MIT.html">MIT</a> license.</p> </article> </div> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer" > <a href="reference/" class="md-footer__link md-footer__link--next" aria-label="Next: Reference overview"> <div class="md-footer__title"> <span class="md-footer__direction"> Next </span> <div class="md-ellipsis"> Reference overview </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> <div class="md-copyright__highlight"> Copyright © 2024 Marco Ricci (the-13th-letter) </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> and <a href="https://mkdocstrings.github.io/python/" target="_blank" rel="noopener"> mkdocstrings-python </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> </body> </html>