Marco Ricci commited on 2025-08-03 22:02:08
Zeige 6 geänderte Dateien mit 181 Einfügungen und 41 Löschungen.
| ... | ... |
@@ -179,3 +179,27 @@ code.doc-symbol-module::after {
|
| 179 | 179 |
color: inherit; |
| 180 | 180 |
border-bottom: 1px dotted currentcolor; |
| 181 | 181 |
} |
| 182 |
+ |
|
| 183 |
+/* Source code blocks (admonitions). */ |
|
| 184 |
+:root {
|
|
| 185 |
+ --md-admonition-icon--mkdocstrings-source: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.22 4.97a.75.75 0 0 1 1.06 0l6.5 6.5a.75.75 0 0 1 0 1.06l-6.5 6.5a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L21.19 12l-5.97-5.97a.75.75 0 0 1 0-1.06m-6.44 0a.75.75 0 0 1 0 1.06L2.81 12l5.97 5.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215l-6.5-6.5a.75.75 0 0 1 0-1.06l6.5-6.5a.75.75 0 0 1 1.06 0"/></svg>')
|
|
| 186 |
+} |
|
| 187 |
+.md-typeset .admonition.mkdocstrings-source, |
|
| 188 |
+.md-typeset details.mkdocstrings-source {
|
|
| 189 |
+ border: none; |
|
| 190 |
+ padding: 0; |
|
| 191 |
+} |
|
| 192 |
+.md-typeset .admonition.mkdocstrings-source:focus-within, |
|
| 193 |
+.md-typeset details.mkdocstrings-source:focus-within {
|
|
| 194 |
+ box-shadow: none; |
|
| 195 |
+} |
|
| 196 |
+.md-typeset .mkdocstrings-source > .admonition-title, |
|
| 197 |
+.md-typeset .mkdocstrings-source > summary {
|
|
| 198 |
+ background-color: inherit; |
|
| 199 |
+} |
|
| 200 |
+.md-typeset .mkdocstrings-source > .admonition-title::before, |
|
| 201 |
+.md-typeset .mkdocstrings-source > summary::before {
|
|
| 202 |
+ background-color: var(--md-default-fg-color); |
|
| 203 |
+ -webkit-mask-image: var(--md-admonition-icon--mkdocstrings-source); |
|
| 204 |
+ mask-image: var(--md-admonition-icon--mkdocstrings-source); |
|
| 205 |
+} |
| ... | ... |
@@ -2851,7 +2851,7 @@ |
| 2851 | 2851 |
|
| 2852 | 2852 |
<div class="doc doc-contents "> |
| 2853 | 2853 |
|
| 2854 |
- <p>A [<code>TypeVar</code>][] for classes implementing the [<code>Buffer</code>][] interface.</p> |
|
| 2854 |
+ <p>A <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/typing.html#typing.TypeVar"><code>TypeVar</code></a> for classes implementing the <a class="autorefs autorefs-external" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Buffer"><code>Buffer</code></a> interface.</p> |
|
| 2855 | 2855 |
|
| 2856 | 2856 |
|
| 2857 | 2857 |
<details class="warning" open> |
| ... | ... |
@@ -4181,7 +4187,13 @@ the JSON value that was cleaned up.</p> |
| 4181 | 4187 |
<td> |
| 4182 | 4188 |
<div class="doc-md-description"> |
| 4183 | 4189 |
<p>List identities. Expecting |
| 4184 |
-[<code>SSH_AGENT.IDENTITIES_ANSWER</code>][].</p> |
|
| 4190 |
+<a class="autorefs autorefs-internal" title=" IDENTITIES_ANSWER |
|
| 4191 |
+ |
|
| 4192 |
+ |
|
| 4193 |
+ |
|
| 4194 |
+ class-attribute |
|
| 4195 |
+ instance-attribute |
|
| 4196 |
+ " href="#derivepassphrase._types.SSH_AGENT.IDENTITIES_ANSWER"><code>SSH_AGENT.IDENTITIES_ANSWER</code></a>.</p> |
|
| 4185 | 4197 |
</div> |
| 4186 | 4198 |
</td> |
| 4187 | 4199 |
</tr> |
| ... | ... |
@@ -4198,7 +4210,13 @@ the JSON value that was cleaned up.</p> |
| 4198 | 4210 |
</td> |
| 4199 | 4211 |
<td> |
| 4200 | 4212 |
<div class="doc-md-description"> |
| 4201 |
- <p>Sign data. Expecting [<code>SSH_AGENT.SIGN_RESPONSE</code>][].</p> |
|
| 4213 |
+ <p>Sign data. Expecting <a class="autorefs autorefs-internal" title=" SIGN_RESPONSE |
|
| 4214 |
+ |
|
| 4215 |
+ |
|
| 4216 |
+ |
|
| 4217 |
+ class-attribute |
|
| 4218 |
+ instance-attribute |
|
| 4219 |
+ " href="#derivepassphrase._types.SSH_AGENT.SIGN_RESPONSE"><code>SSH_AGENT.SIGN_RESPONSE</code></a>.</p> |
|
| 4202 | 4220 |
</div> |
| 4203 | 4221 |
</td> |
| 4204 | 4222 |
</tr> |
| ... | ... |
@@ -4267,9 +4285,27 @@ the JSON value that was cleaned up.</p> |
| 4267 | 4285 |
<td> |
| 4268 | 4286 |
<div class="doc-md-description"> |
| 4269 | 4287 |
<p>Issue a named request that isn’t part of the core agent |
| 4270 |
-protocol. Expecting [<code>SSH_AGENT.EXTENSION_RESPONSE</code>][] or |
|
| 4271 |
-[<code>SSH_AGENT.EXTENSION_FAILURE</code>][] if the named request is |
|
| 4272 |
-supported, [<code>SSH_AGENT.FAILURE</code>][] otherwise.</p> |
|
| 4288 |
+protocol. Expecting <a class="autorefs autorefs-internal" title=" EXTENSION_RESPONSE |
|
| 4289 |
+ |
|
| 4290 |
+ |
|
| 4291 |
+ |
|
| 4292 |
+ class-attribute |
|
| 4293 |
+ instance-attribute |
|
| 4294 |
+ " href="#derivepassphrase._types.SSH_AGENT.EXTENSION_RESPONSE"><code>SSH_AGENT.EXTENSION_RESPONSE</code></a> or |
|
| 4295 |
+<a class="autorefs autorefs-internal" title=" EXTENSION_FAILURE |
|
| 4296 |
+ |
|
| 4297 |
+ |
|
| 4298 |
+ |
|
| 4299 |
+ class-attribute |
|
| 4300 |
+ instance-attribute |
|
| 4301 |
+ " href="#derivepassphrase._types.SSH_AGENT.EXTENSION_FAILURE"><code>SSH_AGENT.EXTENSION_FAILURE</code></a> if the named request is |
|
| 4302 |
+supported, <a class="autorefs autorefs-internal" title=" FAILURE |
|
| 4303 |
+ |
|
| 4304 |
+ |
|
| 4305 |
+ |
|
| 4306 |
+ class-attribute |
|
| 4307 |
+ instance-attribute |
|
| 4308 |
+ " href="#derivepassphrase._types.SSH_AGENT.FAILURE"><code>SSH_AGENT.FAILURE</code></a> otherwise.</p> |
|
| 4273 | 4309 |
</div> |
| 4274 | 4310 |
</td> |
| 4275 | 4311 |
</tr> |
| ... | ... |
@@ -4529,7 +4566,13 @@ supported, [<code>SSH_AGENT.FAILURE</code>][] otherwise.</p> |
| 4529 | 4566 |
</td> |
| 4530 | 4567 |
<td> |
| 4531 | 4568 |
<div class="doc-md-description"> |
| 4532 |
- <p>Successful answer to [<code>SSH_AGENTC.REQUEST_IDENTITIES</code>][].</p> |
|
| 4569 |
+ <p>Successful answer to <a class="autorefs autorefs-internal" title=" REQUEST_IDENTITIES |
|
| 4570 |
+ |
|
| 4571 |
+ |
|
| 4572 |
+ |
|
| 4573 |
+ class-attribute |
|
| 4574 |
+ instance-attribute |
|
| 4575 |
+ " href="#derivepassphrase._types.SSH_AGENTC.REQUEST_IDENTITIES"><code>SSH_AGENTC.REQUEST_IDENTITIES</code></a>.</p> |
|
| 4533 | 4576 |
</div> |
| 4534 | 4577 |
</td> |
| 4535 | 4578 |
</tr> |
| ... | ... |
@@ -4546,7 +4589,13 @@ supported, [<code>SSH_AGENT.FAILURE</code>][] otherwise.</p> |
| 4546 | 4589 |
</td> |
| 4547 | 4590 |
<td> |
| 4548 | 4591 |
<div class="doc-md-description"> |
| 4549 |
- <p>Successful answer to [<code>SSH_AGENTC.SIGN_REQUEST</code>][].</p> |
|
| 4592 |
+ <p>Successful answer to <a class="autorefs autorefs-internal" title=" SIGN_REQUEST |
|
| 4593 |
+ |
|
| 4594 |
+ |
|
| 4595 |
+ |
|
| 4596 |
+ class-attribute |
|
| 4597 |
+ instance-attribute |
|
| 4598 |
+ " href="#derivepassphrase._types.SSH_AGENTC.SIGN_REQUEST"><code>SSH_AGENTC.SIGN_REQUEST</code></a>.</p> |
|
| 4550 | 4599 |
</div> |
| 4551 | 4600 |
</td> |
| 4552 | 4601 |
</tr> |
| ... | ... |
@@ -4563,7 +4612,13 @@ supported, [<code>SSH_AGENT.FAILURE</code>][] otherwise.</p> |
| 4563 | 4612 |
</td> |
| 4564 | 4613 |
<td> |
| 4565 | 4614 |
<div class="doc-md-description"> |
| 4566 |
- <p>Unsuccessful answer to [<code>SSH_AGENTC.EXTENSION</code>][].</p> |
|
| 4615 |
+ <p>Unsuccessful answer to <a class="autorefs autorefs-internal" title=" EXTENSION |
|
| 4616 |
+ |
|
| 4617 |
+ |
|
| 4618 |
+ |
|
| 4619 |
+ class-attribute |
|
| 4620 |
+ instance-attribute |
|
| 4621 |
+ " href="#derivepassphrase._types.SSH_AGENTC.EXTENSION"><code>SSH_AGENTC.EXTENSION</code></a>.</p> |
|
| 4567 | 4622 |
</div> |
| 4568 | 4623 |
</td> |
| 4569 | 4624 |
</tr> |
| ... | ... |
@@ -4580,7 +4635,13 @@ supported, [<code>SSH_AGENT.FAILURE</code>][] otherwise.</p> |
| 4580 | 4635 |
</td> |
| 4581 | 4636 |
<td> |
| 4582 | 4637 |
<div class="doc-md-description"> |
| 4583 |
- <p>Successful answer to [<code>SSH_AGENTC.EXTENSION</code>][].</p> |
|
| 4638 |
+ <p>Successful answer to <a class="autorefs autorefs-internal" title=" EXTENSION |
|
| 4639 |
+ |
|
| 4640 |
+ |
|
| 4641 |
+ |
|
| 4642 |
+ class-attribute |
|
| 4643 |
+ instance-attribute |
|
| 4644 |
+ " href="#derivepassphrase._types.SSH_AGENTC.EXTENSION"><code>SSH_AGENTC.EXTENSION</code></a>.</p> |
|
| 4584 | 4645 |
</div> |
| 4585 | 4646 |
</td> |
| 4586 | 4647 |
</tr> |
| ... | ... |
@@ -6319,7 +6388,7 @@ check for <a class="autorefs autorefs-external" href="https://docs.python.org/3/ |
| 6319 | 6388 |
<p>Needed for compatibility with vault(1), which sometimes uses only |
| 6320 | 6389 |
truthiness checks.</p> |
| 6321 | 6390 |
<p>If vault(1) considered <code>obj</code> to be valid, then after clean up, |
| 6322 |
-<code>obj</code> will be valid as per [<code>validate_vault_config</code>][].</p> |
|
| 6391 |
+<code>obj</code> will be valid as per <a class="autorefs autorefs-internal" title=" validate_vault_config" href="#derivepassphrase._types.validate_vault_config"><code>validate_vault_config</code></a>.</p> |
|
| 6323 | 6392 |
|
| 6324 | 6393 |
|
| 6325 | 6394 |
<p><span class="doc-section-title">Parameters:</span></p> |
| ... | ... |
@@ -2375,7 +2377,7 @@ |
| 2375 | 2377 |
<td> |
| 2376 | 2378 |
<div class="doc-md-description"> |
| 2377 | 2379 |
<p>The path to the vault configuration file or directory. |
| 2378 |
-If not given, then query [<code>get_vault_path</code>][] for the |
|
| 2380 |
+If not given, then query <a class="autorefs autorefs-internal" title=" get_vault_path" href="#derivepassphrase.exporter.get_vault_path"><code>get_vault_path</code></a> for the |
|
| 2379 | 2381 |
correct value.</p> |
| 2380 | 2382 |
</div> |
| 2381 | 2383 |
</td> |
| ... | ... |
@@ -2395,7 +2397,7 @@ correct value.</p> |
| 2395 | 2397 |
<p>Encryption key/password for the configuration file or |
| 2396 | 2398 |
directory, usually the username, or passed via the |
| 2397 | 2399 |
<code>VAULT_KEY</code> environment variable. If not given, then |
| 2398 |
-query [<code>get_vault_key</code>][] for the value.</p> |
|
| 2400 |
+query <a class="autorefs autorefs-internal" title=" get_vault_key" href="#derivepassphrase.exporter.get_vault_key"><code>get_vault_key</code></a> for the value.</p> |
|
| 2399 | 2401 |
</div> |
| 2400 | 2402 |
</td> |
| 2401 | 2403 |
<td> |
| ... | ... |
@@ -2770,7 +2772,7 @@ manually to the correct value.</p> |
| 2770 | 2772 |
<div class="doc doc-contents "> |
| 2771 | 2773 |
|
| 2772 | 2774 |
<p>Export the full vault-native configuration stored in <code>path</code>.</p> |
| 2773 |
-<p>See [<code>ExportVaultConfigDataFunction</code>][] for an explanation of the |
|
| 2775 |
+<p>See <a class="autorefs autorefs-internal" title=" ExportVaultConfigDataFunction" href="#derivepassphrase.exporter.ExportVaultConfigDataFunction"><code>ExportVaultConfigDataFunction</code></a> for an explanation of the |
|
| 2774 | 2776 |
call signature, and the exceptions to expect.</p> |
| 2775 | 2777 |
|
| 2776 | 2778 |
|
| ... | ... |
@@ -2806,7 +2808,7 @@ slots) and provides an impure quasi-filesystem interface. Each hash |
| 2806 | 2808 |
table entry is separately encrypted and authenticated. James Coglan |
| 2807 | 2809 |
designed this format to avoid concurrent write issues when updating or |
| 2808 | 2810 |
synchronizing the vault configuration with e.g. a cloud service.</p> |
| 2809 |
-<p>The public interface is the [<code>export_storeroom_data</code>][] function. |
|
| 2811 |
+<p>The public interface is the <a class="autorefs autorefs-internal" title=" export_storeroom_data" href="#derivepassphrase.exporter.storeroom.export_storeroom_data"><code>export_storeroom_data</code></a> function. |
|
| 2810 | 2812 |
Multiple <em>non-public</em> functions are additionally documented here for |
| 2811 | 2813 |
didactical and educational reasons, but they are not part of the module |
| 2812 | 2814 |
API, are subject to change without notice (including removal), and |
| ... | ... |
@@ -2849,7 +2851,7 @@ should <em>not</em> be used or relied on.</p> |
| 2849 | 2851 |
<div class="doc doc-contents "> |
| 2850 | 2852 |
|
| 2851 | 2853 |
<p>Export the full configuration stored in the storeroom.</p> |
| 2852 |
-<p>See [<code>exporter.ExportVaultConfigDataFunction</code>][] for an explanation |
|
| 2854 |
+<p>See <a class="autorefs autorefs-internal" title=" ExportVaultConfigDataFunction" href="#derivepassphrase.exporter.ExportVaultConfigDataFunction"><code>exporter.ExportVaultConfigDataFunction</code></a> for an explanation |
|
| 2853 | 2855 |
of the call signature, and the exceptions to expect.</p> |
| 2854 | 2856 |
|
| 2855 | 2857 |
|
| ... | ... |
@@ -3061,7 +3063,7 @@ blocksize, in this case, the PKCS7 padding always is <code>b'\x10' * 16</code>.< |
| 3061 | 3063 |
<div class="doc-md-description"> |
| 3062 | 3064 |
<p>The encryption and signing keys for the master keys data. |
| 3063 | 3065 |
These should have previously been derived via the |
| 3064 |
-[<code>_derive_master_keys_keys</code>][] function.</p> |
|
| 3066 |
+<a class="autorefs autorefs-internal" title=" _derive_master_keys_keys" href="#derivepassphrase.exporter.storeroom._derive_master_keys_keys"><code>_derive_master_keys_keys</code></a> function.</p> |
|
| 3065 | 3067 |
</div> |
| 3066 | 3068 |
</td> |
| 3067 | 3069 |
<td> |
| ... | ... |
@@ -3212,7 +3214,7 @@ blocksize, in this case, the PKCS7 padding always is <code>b'\x10' * 16</code>.< |
| 3212 | 3214 |
<td> |
| 3213 | 3215 |
<div class="doc-md-description"> |
| 3214 | 3216 |
<p>The master keys. Presumably these have previously been |
| 3215 |
-obtained via the [<code>_decrypt_master_keys_data</code>][] function.</p> |
|
| 3217 |
+obtained via the <a class="autorefs autorefs-internal" title=" _decrypt_master_keys_data" href="#derivepassphrase.exporter.storeroom._decrypt_master_keys_data"><code>_decrypt_master_keys_data</code></a> function.</p> |
|
| 3216 | 3218 |
</div> |
| 3217 | 3219 |
</td> |
| 3218 | 3220 |
<td> |
| ... | ... |
@@ -3359,7 +3361,7 @@ MAC can be verified before attempting to decrypt the payload.</p> |
| 3359 | 3361 |
<td> |
| 3360 | 3362 |
<div class="doc-md-description"> |
| 3361 | 3363 |
<p>The bucket item’s session keys. Presumably these have |
| 3362 |
-previously been obtained via the [<code>_decrypt_session_keys</code>][] |
|
| 3364 |
+previously been obtained via the <a class="autorefs autorefs-internal" title=" _decrypt_session_keys" href="#derivepassphrase.exporter.storeroom._decrypt_session_keys"><code>_decrypt_session_keys</code></a> |
|
| 3363 | 3365 |
function.</p> |
| 3364 | 3366 |
</div> |
| 3365 | 3367 |
</td> |
| ... | ... |
@@ -3496,7 +3498,7 @@ removal.</p> |
| 3496 | 3498 |
<td> |
| 3497 | 3499 |
<div class="doc-md-description"> |
| 3498 | 3500 |
<p>The master keys. Presumably these have previously been |
| 3499 |
-obtained via the [<code>_decrypt_master_keys_data</code>][] function.</p> |
|
| 3501 |
+obtained via the <a class="autorefs autorefs-internal" title=" _decrypt_master_keys_data" href="#derivepassphrase.exporter.storeroom._decrypt_master_keys_data"><code>_decrypt_master_keys_data</code></a> function.</p> |
|
| 3500 | 3502 |
</div> |
| 3501 | 3503 |
</td> |
| 3502 | 3504 |
<td> |
| ... | ... |
@@ -3635,7 +3637,7 @@ removal.</p> |
| 3635 | 3637 |
<td> |
| 3636 | 3638 |
<div class="doc-md-description"> |
| 3637 | 3639 |
<p>The master keys. Presumably these have previously been |
| 3638 |
-obtained via the [<code>_decrypt_master_keys_data</code>][] function.</p> |
|
| 3640 |
+obtained via the <a class="autorefs autorefs-internal" title=" _decrypt_master_keys_data" href="#derivepassphrase.exporter.storeroom._decrypt_master_keys_data"><code>_decrypt_master_keys_data</code></a> function.</p> |
|
| 3639 | 3641 |
</div> |
| 3640 | 3642 |
</td> |
| 3641 | 3643 |
<td> |
| ... | ... |
@@ -3762,7 +3764,7 @@ structures, so they are <em>not</em> compatible. v0.2 additionally contains |
| 3762 | 3764 |
cryptographic weaknesses (API misuse of a key derivation function, and |
| 3763 | 3765 |
a low-entropy method of generating initialization vectors for CBC block |
| 3764 | 3766 |
encryption mode) and should thus be avoided if possible.</p> |
| 3765 |
-<p>The public interface is the [<code>export_vault_native_data</code>][] function. |
|
| 3767 |
+<p>The public interface is the <a class="autorefs autorefs-internal" title=" export_vault_native_data" href="#derivepassphrase.exporter.vault_native.export_vault_native_data"><code>export_vault_native_data</code></a> function. |
|
| 3766 | 3768 |
Multiple <em>non-public</em> classes are additionally documented here for |
| 3767 | 3769 |
didactical and educational reasons, but they are not part of the module |
| 3768 | 3770 |
API, are subject to change without notice (including removal), and |
| ... | ... |
@@ -3852,7 +3855,7 @@ here.</p> |
| 3852 | 3855 |
<div class="doc-md-description"> |
| 3853 | 3856 |
<p>The vault master key/master passphrase the file is |
| 3854 | 3857 |
encrypted with. Must be non-empty. See |
| 3855 |
-[<code>exporter.get_vault_key</code>][] for details.</p> |
|
| 3858 |
+<a class="autorefs autorefs-internal" title=" get_vault_key" href="#derivepassphrase.exporter.get_vault_key"><code>exporter.get_vault_key</code></a> for details.</p> |
|
| 3856 | 3859 |
<p>If this is a text string, then the UTF-8 encoding of the |
| 3857 | 3860 |
string is used as the binary password.</p> |
| 3858 | 3861 |
</div> |
| ... | ... |
@@ -3989,7 +3992,13 @@ unexpected extra contents, or invalid padding.)</p> |
| 3989 | 3992 |
<div class="doc doc-contents "> |
| 3990 | 3993 |
|
| 3991 | 3994 |
<p>Generate a key from a password.</p> |
| 3992 |
-<p>Uses PBKDF2 with HMAC-SHA1, with [vault.Vault.UUID][] as a fixed |
|
| 3995 |
+<p>Uses PBKDF2 with HMAC-SHA1, with <a class="autorefs autorefs-internal" title=" UUID |
|
| 3996 |
+ |
|
| 3997 |
+ |
|
| 3998 |
+ |
|
| 3999 |
+ class-attribute |
|
| 4000 |
+ instance-attribute |
|
| 4001 |
+ " href="../derivepassphrase.vault/#derivepassphrase.vault.Vault.UUID">vault.Vault.UUID</a> as a fixed |
|
| 3993 | 4002 |
salt value.</p> |
| 3994 | 4003 |
|
| 3995 | 4004 |
|
| ... | ... |
@@ -4156,7 +4165,12 @@ parser.</p> |
| 4156 | 4165 |
|
| 4157 | 4166 |
<p>Derive the signing and encryption keys.</p> |
| 4158 | 4167 |
<p>This is a bookkeeping method. The actual work is done in |
| 4159 |
-[<code>_generate_keys</code>][].</p> |
|
| 4168 |
+<a class="autorefs autorefs-internal" title=" _generate_keys |
|
| 4169 |
+ |
|
| 4170 |
+ |
|
| 4171 |
+ |
|
| 4172 |
+ abstractmethod |
|
| 4173 |
+ " href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._generate_keys"><code>_generate_keys</code></a>.</p> |
|
| 4160 | 4174 |
|
| 4161 | 4175 |
|
| 4162 | 4176 |
</div> |
| ... | ... |
@@ -4320,8 +4334,8 @@ version-specific. The default implementation raises an error.</p> |
| 4320 | 4334 |
<div class="doc doc-contents "> |
| 4321 | 4335 |
|
| 4322 | 4336 |
<p>Return the decrypted vault configuration.</p> |
| 4323 |
-<p>Requires [<code>_parse_contents</code>][] and [<code>_derive_keys</code>][] to have |
|
| 4324 |
-run, and relies on [<code>_check_signature</code>][] for tampering |
|
| 4337 |
+<p>Requires <a class="autorefs autorefs-internal" title=" _parse_contents" href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._parse_contents"><code>_parse_contents</code></a> and <a class="autorefs autorefs-internal" title=" _derive_keys" href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._derive_keys"><code>_derive_keys</code></a> to have |
|
| 4338 |
+run, and relies on <a class="autorefs autorefs-internal" title=" _check_signature" href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._check_signature"><code>_check_signature</code></a> for tampering |
|
| 4325 | 4339 |
detection.</p> |
| 4326 | 4340 |
|
| 4327 | 4341 |
|
| ... | ... |
@@ -4474,14 +4489,25 @@ strength is half of this value.)</p> |
| 4474 | 4489 |
|
| 4475 | 4490 |
<p>Derive the signing and encryption keys, and set the key sizes.</p> |
| 4476 | 4491 |
<p>Version 0.3 vault configurations use a constant key size; see |
| 4477 |
-[<code>KEY_SIZE</code>][]. The encryption and signing keys differ in how |
|
| 4492 |
+<a class="autorefs autorefs-internal" title=" KEY_SIZE |
|
| 4493 |
+ |
|
| 4494 |
+ |
|
| 4495 |
+ |
|
| 4496 |
+ class-attribute |
|
| 4497 |
+ instance-attribute |
|
| 4498 |
+ " href="#derivepassphrase.exporter.vault_native.VaultNativeV03ConfigParser.KEY_SIZE"><code>KEY_SIZE</code></a>. The encryption and signing keys differ in how |
|
| 4478 | 4499 |
many rounds of PBKDF2 they use (100 and 200, respectively).</p> |
| 4479 | 4500 |
|
| 4480 | 4501 |
|
| 4481 | 4502 |
<details class="danger" open> |
| 4482 | 4503 |
<summary>Insecure use of cryptography</summary> |
| 4483 | 4504 |
<p>This function makes use of the insecure function |
| 4484 |
-[<code>VaultNativeConfigParser._pbkdf2</code>][], without any attempts |
|
| 4505 |
+<a class="autorefs autorefs-internal" title=" _pbkdf2 |
|
| 4506 |
+ |
|
| 4507 |
+ |
|
| 4508 |
+ |
|
| 4509 |
+ staticmethod |
|
| 4510 |
+ " href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._pbkdf2"><code>VaultNativeConfigParser._pbkdf2</code></a>, without any attempts |
|
| 4485 | 4511 |
at mitigating its insecurity. It further uses <code>_pbkdf2</code> |
| 4486 | 4512 |
with the low iteration count of 100 and 200 rounds, which is |
| 4487 | 4513 |
<em>drastically</em> insufficient to defend against password |
| ... | ... |
@@ -4676,7 +4703,12 @@ iteration count.</p> |
| 4676 | 4703 |
<details class="danger" open> |
| 4677 | 4704 |
<summary>Insecure use of cryptography</summary> |
| 4678 | 4705 |
<p>This function makes use of the insecure function |
| 4679 |
-[<code>VaultNativeConfigParser._pbkdf2</code>][], without any attempts |
|
| 4706 |
+<a class="autorefs autorefs-internal" title=" _pbkdf2 |
|
| 4707 |
+ |
|
| 4708 |
+ |
|
| 4709 |
+ |
|
| 4710 |
+ staticmethod |
|
| 4711 |
+ " href="#derivepassphrase.exporter.vault_native.VaultNativeConfigParser._pbkdf2"><code>VaultNativeConfigParser._pbkdf2</code></a>, without any attempts |
|
| 4680 | 4712 |
at mitigating its insecurity. It further uses <code>_pbkdf2</code> |
| 4681 | 4713 |
with the low iteration count of 16 rounds, which is |
| 4682 | 4714 |
<em>drastically</em> insufficient to defend against password |
| ... | ... |
@@ -4873,7 +4905,7 @@ determined attackers!</p> |
| 4873 | 4905 |
<div class="doc doc-contents "> |
| 4874 | 4906 |
|
| 4875 | 4907 |
<p>Export the full configuration stored in vault native format.</p> |
| 4876 |
-<p>See [<code>exporter.ExportVaultConfigDataFunction</code>][] for an explanation |
|
| 4908 |
+<p>See <a class="autorefs autorefs-internal" title=" ExportVaultConfigDataFunction" href="#derivepassphrase.exporter.ExportVaultConfigDataFunction"><code>exporter.ExportVaultConfigDataFunction</code></a> for an explanation |
|
| 4877 | 4909 |
of the call signature, and the exceptions to expect.</p> |
| 4878 | 4910 |
|
| 4879 | 4911 |
|
| ... | ... |
@@ -1499,7 +1499,7 @@ served. The sequin module is used in Coglan’s “vault” module |
| 1499 | 1499 |
deterministic, stateless password manager that recomputes passwords |
| 1500 | 1500 |
instead of storing them), and this reimplementation is used for |
| 1501 | 1501 |
a similar purpose.</p> |
| 1502 |
-<p>The main API is the [<code>Sequin</code>][] class, which is thoroughly documented.</p> |
|
| 1502 |
+<p>The main API is the <a class="autorefs autorefs-internal" title=" Sequin" href="#derivepassphrase.sequin.Sequin"><code>Sequin</code></a> class, which is thoroughly documented.</p> |
|
| 1503 | 1503 |
|
| 1504 | 1504 |
|
| 1505 | 1505 |
|
| ... | ... |
@@ -1885,8 +1888,20 @@ |
| 1885 | 1888 |
<p>A bare-bones SSH agent client supporting signing and key listing.</p> |
| 1886 | 1889 |
<p>The main use case is requesting the agent sign some data, after |
| 1887 | 1890 |
checking that the necessary key is already loaded.</p> |
| 1888 |
-<p>The main fleshed out methods are [<code>list_keys</code>][] and [<code>sign</code>][], |
|
| 1889 |
-which implement the [<code>REQUEST_IDENTITIES</code>][_types.SSH_AGENTC.REQUEST_IDENTITIES] and [<code>SIGN_REQUEST</code>][_types.SSH_AGENTC.SIGN_REQUEST] requests. If you <em>really</em> wanted |
|
| 1891 |
+<p>The main fleshed out methods are <a class="autorefs autorefs-internal" title=" list_keys" href="#derivepassphrase.ssh_agent.SSHAgentClient.list_keys"><code>list_keys</code></a> and <a class="autorefs autorefs-internal" title=" sign" href="#derivepassphrase.ssh_agent.SSHAgentClient.sign"><code>sign</code></a>, |
|
| 1892 |
+which implement the <a class="autorefs autorefs-internal" title=" REQUEST_IDENTITIES |
|
| 1893 |
+ |
|
| 1894 |
+ |
|
| 1895 |
+ |
|
| 1896 |
+ class-attribute |
|
| 1897 |
+ instance-attribute |
|
| 1898 |
+ " href="../derivepassphrase._types/#derivepassphrase._types.SSH_AGENTC.REQUEST_IDENTITIES"><code>REQUEST_IDENTITIES</code></a> and <a class="autorefs autorefs-internal" title=" SIGN_REQUEST |
|
| 1899 |
+ |
|
| 1900 |
+ |
|
| 1901 |
+ |
|
| 1902 |
+ class-attribute |
|
| 1903 |
+ instance-attribute |
|
| 1904 |
+ " href="../derivepassphrase._types/#derivepassphrase._types.SSH_AGENTC.SIGN_REQUEST"><code>SIGN_REQUEST</code></a> requests. If you <em>really</em> wanted |
|
| 1890 | 1905 |
to, there is enough infrastructure in place to issue other requests |
| 1891 | 1906 |
as defined in the protocol—it’s merely the wrapper functions and |
| 1892 | 1907 |
the protocol numbers table that are missing.</p> |
| ... | ... |
@@ -3132,7 +3147,7 @@ any of them.</p> |
| 3132 | 3147 |
<td> |
| 3133 | 3148 |
<div class="doc-md-description"> |
| 3134 | 3149 |
<p>The public SSH key to sign the payload with, in the same |
| 3135 |
-format as returned by, e.g., the [<code>list_keys</code>][] method. |
|
| 3150 |
+format as returned by, e.g., the <a class="autorefs autorefs-internal" title=" list_keys" href="#derivepassphrase.ssh_agent.SSHAgentClient.list_keys"><code>list_keys</code></a> method. |
|
| 3136 | 3151 |
The corresponding private key must have previously been |
| 3137 | 3152 |
loaded into the agent to successfully issue a signature.</p> |
| 3138 | 3153 |
</div> |
| ... | ... |
@@ -3186,7 +3201,7 @@ real-world usage is currently implemented.)</p> |
| 3186 | 3201 |
</td> |
| 3187 | 3202 |
<td> |
| 3188 | 3203 |
<div class="doc-md-description"> |
| 3189 |
- <p>If true, check beforehand (via [<code>list_keys</code>][]) if the |
|
| 3204 |
+ <p>If true, check beforehand (via <a class="autorefs autorefs-internal" title=" list_keys" href="#derivepassphrase.ssh_agent.SSHAgentClient.list_keys"><code>list_keys</code></a>) if the |
|
| 3190 | 3205 |
corresponding key has been loaded into the agent.</p> |
| 3191 | 3206 |
</div> |
| 3192 | 3207 |
</td> |
| ... | ... |
@@ -1634,7 +1635,7 @@ kept secret. The implementation is compatible with <a href="https://www.npmjs.c |
| 1634 | 1635 |
detail</a> in his blog post on said topic: A principally |
| 1635 | 1636 |
infinite bit stream is obtained by running a key-derivation function |
| 1636 | 1637 |
on the master passphrase and the service name, then this bit stream |
| 1637 |
-is fed into a [sequin.Sequin][] to generate random numbers in the |
|
| 1638 |
+is fed into a <a class="autorefs autorefs-internal" title=" Sequin" href="../derivepassphrase.sequin/#derivepassphrase.sequin.Sequin">sequin.Sequin</a> to generate random numbers in the |
|
| 1638 | 1639 |
correct range, and finally these random numbers select passphrase |
| 1639 | 1640 |
characters until the desired length is reached.</p> |
| 1640 | 1641 |
|
| ... | ... |
@@ -2003,7 +2004,13 @@ string is used.</p> |
| 2003 | 2004 |
<td> |
| 2004 | 2005 |
<div class="doc-md-description"> |
| 2005 | 2006 |
<p>A vault service name. Will be suffixed with the |
| 2006 |
-[<code>UUID</code>][], and then used as the salt value for |
|
| 2007 |
+<a class="autorefs autorefs-internal" title=" UUID |
|
| 2008 |
+ |
|
| 2009 |
+ |
|
| 2010 |
+ |
|
| 2011 |
+ class-attribute |
|
| 2012 |
+ instance-attribute |
|
| 2013 |
+ " href="#derivepassphrase.vault.Vault.UUID"><code>UUID</code></a>, and then used as the salt value for |
|
| 2007 | 2014 |
PBKDF2. If a string, then the UTF-8 encoding of the |
| 2008 | 2015 |
string is used.</p> |
| 2009 | 2016 |
</div> |
| ... | ... |
@@ -2369,7 +2376,13 @@ restricted to the indicated SSH agent).</p> |
| 2369 | 2376 |
|
| 2370 | 2377 |
<p>Obtain the master passphrase from a configured SSH key.</p> |
| 2371 | 2378 |
<p>vault allows the usage of certain SSH keys to derive a master |
| 2372 |
-passphrase, by signing the vault [<code>UUID</code>][] with the SSH key. |
|
| 2379 |
+passphrase, by signing the vault <a class="autorefs autorefs-internal" title=" UUID |
|
| 2380 |
+ |
|
| 2381 |
+ |
|
| 2382 |
+ |
|
| 2383 |
+ class-attribute |
|
| 2384 |
+ instance-attribute |
|
| 2385 |
+ " href="#derivepassphrase.vault.Vault.UUID"><code>UUID</code></a> with the SSH key. |
|
| 2373 | 2386 |
The key type must ensure that signatures are deterministic |
| 2374 | 2387 |
(perhaps only in conjunction with the given SSH agent).</p> |
| 2375 | 2388 |
|
| ... | ... |
@@ -2411,7 +2424,12 @@ The key type must ensure that signatures are deterministic |
| 2411 | 2424 |
<td> |
| 2412 | 2425 |
<div class="doc-md-description"> |
| 2413 | 2426 |
<p>An optional connection hint to the SSH agent. See |
| 2414 |
-[<code>ssh_agent.SSHAgentClient.ensure_agent_subcontext</code>][].</p> |
|
| 2427 |
+<a class="autorefs autorefs-internal" title=" ensure_agent_subcontext |
|
| 2428 |
+ |
|
| 2429 |
+ |
|
| 2430 |
+ |
|
| 2431 |
+ classmethod |
|
| 2432 |
+ " href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient.ensure_agent_subcontext"><code>ssh_agent.SSHAgentClient.ensure_agent_subcontext</code></a>.</p> |
|
| 2415 | 2433 |
</div> |
| 2416 | 2434 |
</td> |
| 2417 | 2435 |
<td> |
| ... | ... |
@@ -2437,7 +2455,13 @@ The key type must ensure that signatures are deterministic |
| 2437 | 2455 |
</td> |
| 2438 | 2456 |
<td> |
| 2439 | 2457 |
<div class="doc-md-description"> |
| 2440 |
- <p>The signature of the vault [<code>UUID</code>][] under this key, |
|
| 2458 |
+ <p>The signature of the vault <a class="autorefs autorefs-internal" title=" UUID |
|
| 2459 |
+ |
|
| 2460 |
+ |
|
| 2461 |
+ |
|
| 2462 |
+ class-attribute |
|
| 2463 |
+ instance-attribute |
|
| 2464 |
+ " href="#derivepassphrase.vault.Vault.UUID"><code>UUID</code></a> under this key, |
|
| 2441 | 2465 |
unframed but encoded in base64.</p> |
| 2442 | 2466 |
</div> |
| 2443 | 2467 |
</td> |
| 2444 | 2468 |