Marco Ricci commited on 2024-06-30 22:04:58
              Zeige 6 geänderte Dateien mit 57 Einfügungen und 14 Löschungen.
            
Also update some settings in the documentation, now that there is an actual landing page.
| ... | ... | 
                      @@ -3,19 +3,50 @@  | 
                  
| 3 | 3 | 
                        [](https://pypi.org/project/derivepassphrase)  | 
                    
| 4 | 4 | 
                        [](https://pypi.org/project/derivepassphrase)  | 
                    
| 5 | 5 | 
                         | 
                    
| 6 | 
                        ------  | 
                    |
| 6 | 
                        +An almost faithful Python reimplementation of [James Coglan's `vault`][VAULT], a deterministic password manager/generator.  | 
                    |
| 7 | 
                        +  | 
                    |
| 8 | 
                        +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.  | 
                    |
| 9 | 
                        +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.  | 
                    |
| 10 | 
                        +The derivation is also deterministic, given the same inputs, thus the resulting passphrase need not be stored explicitly.  | 
                    |
| 11 | 
                        +The service name and constraints themselves also need not be kept secret; the latter are usually stored in a world-readable file.  | 
                    |
| 7 | 12 | 
                         | 
                    
| 8 | 
                        -## Table of Contents  | 
                    |
| 13 | 
                        +[VAULT]: https://getvau.lt  | 
                    |
| 9 | 14 | 
                         | 
                    
| 10 | 
                        -- [Installation](#installation)  | 
                    |
| 11 | 
                        -- [License](#license)  | 
                    |
| 15 | 
                        +-----  | 
                    |
| 12 | 16 | 
                         | 
                    
| 13 | 17 | 
                        ## Installation  | 
                    
| 14 | 18 | 
                         | 
                    
| 19 | 
                        +### With `pip`  | 
                    |
| 20 | 
                        +  | 
                    |
| 21 | 
                        +```console  | 
                    |
| 22 | 
                        +$ pip install derivepassphrase  | 
                    |
| 23 | 
                        +```  | 
                    |
| 24 | 
                        +  | 
                    |
| 25 | 
                        +### Manually  | 
                    |
| 26 | 
                        +  | 
                    |
| 27 | 
                        +`derivepassphrase` is a pure Python package, and may be easily installed manually by placing the respective files into Python's import path.  | 
                    |
| 28 | 
                        +`derivepassphrase` requires Python 3.11 or higher for its core functionality and programmatic interface, and [`click`][CLICK] 8.1 or higher for its command-line interface.  | 
                    |
| 29 | 
                        +  | 
                    |
| 30 | 
                        +[CLICK]: https://click.palletsprojects.com/  | 
                    |
| 31 | 
                        +  | 
                    |
| 32 | 
                        +## Quick Usage  | 
                    |
| 33 | 
                        +  | 
                    |
| 34 | 
                        +```console  | 
                    |
| 35 | 
                        +$ derivepassphrase -p --length 30 --upper 3 --lower 1 --number 2 --space 0 --symbol 0 my-email-account  | 
                    |
| 36 | 
                        +Passphrase: This passphrase is for demonstration purposes only.  | 
                    |
| 37 | 
                        +JKeet7GeBpxysOgdCEJo6UzmP8A0Ih  | 
                    |
| 38 | 
                        +```  | 
                    |
| 39 | 
                        +  | 
                    |
| 40 | 
                        +Some time later…  | 
                    |
| 41 | 
                        +  | 
                    |
| 15 | 42 | 
                        ```console  | 
                    
| 16 | 
                        -pip install derivepassphrase  | 
                    |
| 43 | 
                        +$ derivepassphrase -p --length 30 --upper 3 --lower 1 --number 2 --space 0 --symbol 0 my-email-account  | 
                    |
| 44 | 
                        +Passphrase: This passphrase is for demonstration purposes only.  | 
                    |
| 45 | 
                        +JKeet7GeBpxysOgdCEJo6UzmP8A0Ih  | 
                    |
| 17 | 46 | 
                        ```  | 
                    
| 18 | 47 | 
                         | 
                    
| 48 | 
                        +(The user input `This passphrase is for demonstration purposes only.` for the passphrase prompt is not actually displayed on-screen.)  | 
                    |
| 49 | 
                        +  | 
                    |
| 19 | 50 | 
                        ## License  | 
                    
| 20 | 51 | 
                         | 
                    
| 21 | 52 | 
                        `derivepassphrase` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.  | 
                    
| ... | ... | 
                      @@ -1 +0,0 @@  | 
                  
| 1 | 
                        -Great documentation will appear here.  | 
                    
| ... | ... | 
                      @@ -1,9 +1,9 @@  | 
                  
| 1 | 
                        -site_name: derivepassphrase documentation  | 
                    |
| 1 | 
                        +site_name: derivepassphrase  | 
                    |
| 2 | 2 | 
                        site_url: null  | 
                    
| 3 | 3 | 
                        repo_url: https://github.com/the-13th-letter/derivepassphrase  | 
                    
| 4 | 4 | 
                        site_description: An almost faithful Python reimplementation of James Coglan's vault.  | 
                    
| 5 | 5 | 
                        site_author: Marco Ricci  | 
                    
| 6 | 
                        -copyright: Copyright 2024 Marco Ricci (the-13th-letter). All rights reserved.  | 
                    |
| 6 | 
                        +copyright: Copyright 2024 Marco Ricci (the-13th-letter). All rights reserved. Distributed under the MIT license.  | 
                    |
| 7 | 7 | 
                         | 
                    
| 8 | 8 | 
                        docs_dir: docs  | 
                    
| 9 | 9 | 
                        site_dir: html  | 
                    
| ... | ... | 
                      @@ -75,7 +75,7 @@ plugins:  | 
                  
| 75 | 75 | 
                        - src  | 
                    
| 76 | 76 | 
                         | 
                    
| 77 | 77 | 
                        nav:  | 
                    
| 78 | 
                        - - derivepassphrase documentation: index.md  | 
                    |
| 78 | 
                        + - Overview: index.md  | 
                    |
| 79 | 79 | 
                        #- tutorials.md  | 
                    
| 80 | 80 | 
                        #- How-Tos: how-tos.md  | 
                    
| 81 | 81 | 
                        - Reference:  | 
                    
| ... | ... | 
                      @@ -78,9 +78,17 @@ requires = [  | 
                  
| 78 | 78 | 
                        [tool.hatch.env.collectors.mkdocs.docs]  | 
                    
| 79 | 79 | 
                        path = "mkdocs.yml"  | 
                    
| 80 | 80 | 
                         | 
                    
| 81 | 
                        +[tool.hatch.envs.docs]  | 
                    |
| 82 | 
                        +extra-dependencies = [  | 
                    |
| 83 | 
                        + "black",  | 
                    |
| 84 | 
                        + "mkdocs-material",  | 
                    |
| 85 | 
                        +]  | 
                    |
| 86 | 
                        +detached = false  | 
                    |
| 87 | 
                        +  | 
                    |
| 81 | 88 | 
                        [tool.hatch.envs.types]  | 
                    
| 82 | 89 | 
                        extra-dependencies = [  | 
                    
| 83 | 90 | 
                        "mypy>=1.0.0",  | 
                    
| 91 | 
                        + "pytest",  | 
                    |
| 84 | 92 | 
                        ]  | 
                    
| 85 | 93 | 
                        [tool.hatch.envs.types.scripts]  | 
                    
| 86 | 94 | 
                         check = "mypy --install-types --non-interactive {args:src/derivepassphrase tests}"
                       | 
                    
| ... | ... | 
                      @@ -572,11 +572,15 @@ def derivepassphrase(  | 
                  
| 572 | 572 | 
                        ) -> None:  | 
                    
| 573 | 573 | 
                        """Derive a strong passphrase, deterministically, from a master secret.  | 
                    
| 574 | 574 | 
                         | 
                    
| 575 | 
                        - Using a master passphrase or a master SSH key, derive a strong  | 
                    |
| 576 | 
                        - passphrase for SERVICE, deterministically, subject to length,  | 
                    |
| 577 | 
                        - character and character repetition constraints. The service name  | 
                    |
| 578 | 
                        - and constraints themselves need not be kept secret; the latter are  | 
                    |
| 579 | 
                        - usually stored in a world-readable file.  | 
                    |
| 575 | 
                        + Using a master passphrase or a master SSH key, derive a passphrase  | 
                    |
| 576 | 
                        + for SERVICE, subject to length, character and character repetition  | 
                    |
| 577 | 
                        + constraints. The derivation is cryptographically strong, meaning  | 
                    |
| 578 | 
                        + that even if a single passphrase is compromised, guessing the master  | 
                    |
| 579 | 
                        + passphrase or a different service's passphrase is computationally  | 
                    |
| 580 | 
                        + infeasible. The derivation is also deterministic, given the same  | 
                    |
| 581 | 
                        + inputs, thus the resulting passphrase need not be stored explicitly.  | 
                    |
| 582 | 
                        + The service name and constraints themselves also need not be kept  | 
                    |
| 583 | 
                        + secret; the latter are usually stored in a world-readable file.  | 
                    |
| 580 | 584 | 
                         | 
                    
| 581 | 585 | 
                        If operating on global settings, or importing/exporting settings,  | 
                    
| 582 | 586 | 
                        then SERVICE must be omitted. Otherwise it is required.\f  | 
                    
| 583 | 587 |