Python router + Go sm-leaf reject missing to, empty ct, plaintext body. Summary logs never include ciphertext. MODULE.md.
135 lines
No EOL
6.6 KiB
HTML
135 lines
No EOL
6.6 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html lang="en" data-content_root="./">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
<title>Secure messaging — secure-messaging documentation</title>
|
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
|
|
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
|
|
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
|
|
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
|
<script src="_static/doctools.js?v=fd6eb6e6"></script>
|
|
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
<link rel="index" title="Index" href="genindex.html" />
|
|
<link rel="search" title="Search" href="search.html" />
|
|
|
|
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
|
|
|
|
|
|
|
|
|
|
|
</head><body>
|
|
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
|
|
|
|
<div class="body" role="main">
|
|
|
|
<section id="secure-messaging">
|
|
<h1>Secure messaging<a class="headerlink" href="#secure-messaging" title="Link to this heading">¶</a></h1>
|
|
<p>Passthrough NATS envelopes, Ed25519 signed configuration, DataCube
|
|
admin-history, and Network Error Bundles.</p>
|
|
<p>This is <strong>not</strong> a HIPAA/SOC 2/ISO certificate.</p>
|
|
<ul class="simple">
|
|
<li><p>Python spec: <code class="docutils literal notranslate"><span class="pre">python/secure_messaging/</span></code></p></li>
|
|
<li><p>Go leaf: <code class="docutils literal notranslate"><span class="pre">go/cmd/sm-leaf</span></code> (in-process NATS + optional hub)</p></li>
|
|
<li><p>Loopback health: <code class="docutils literal notranslate"><span class="pre">127.0.0.1:18783/health</span></code></p></li>
|
|
<li><p>Catalog: <a class="reference external" href="https://git.georgelambert.org/marchon/nats-service-endpoints">https://git.georgelambert.org/marchon/nats-service-endpoints</a></p></li>
|
|
<li><p>Hub: <a class="reference external" href="https://git.georgelambert.org/marchon/system-git-sync">https://git.georgelambert.org/marchon/system-git-sync</a></p></li>
|
|
</ul>
|
|
<section id="who-calls-this-module">
|
|
<h2>Who calls this module<a class="headerlink" href="#who-calls-this-module" title="Link to this heading">¶</a></h2>
|
|
<p><code class="docutils literal notranslate"><span class="pre">pfc-py-admin</span></code> (sign config, append history) and systemd <code class="docutils literal notranslate"><span class="pre">pfc-sm-leaf</span></code>.
|
|
Tests send targeted good and bad messages on <code class="docutils literal notranslate"><span class="pre">verae.sm.send</span></code>.</p>
|
|
</section>
|
|
<section id="messages">
|
|
<h2>Messages<a class="headerlink" href="#messages" title="Link to this heading">¶</a></h2>
|
|
<ul class="simple">
|
|
<li><p><strong>From:</strong> console / tests / connectors</p></li>
|
|
<li><p><strong>To:</strong> mailbox dest in the clear; body ciphertext</p></li>
|
|
<li><p><strong>Success:</strong> ack <code class="docutils literal notranslate"><span class="pre">accepted</span></code> + <code class="docutils literal notranslate"><span class="pre">lookup_id</span></code> (sender cannot reopen <code class="docutils literal notranslate"><span class="pre">ct</span></code>)</p></li>
|
|
<li><p><strong>Failure:</strong> <code class="docutils literal notranslate"><span class="pre">SM-MISSING-TO</span></code>, <code class="docutils literal notranslate"><span class="pre">SM-EMPTY-CT</span></code>, <code class="docutils literal notranslate"><span class="pre">SM-BAD-ALG</span></code>,
|
|
<code class="docutils literal notranslate"><span class="pre">SM-PLAINTEXT-BODY</span></code>, <code class="docutils literal notranslate"><span class="pre">SM-BAD-JSON</span></code> → <code class="docutils literal notranslate"><span class="pre">verae.sm.error</span></code> +
|
|
<code class="docutils literal notranslate"><span class="pre">verae.sm.dead</span></code> + <code class="docutils literal notranslate"><span class="pre">verae.sm.log.summary</span></code></p></li>
|
|
<li><p><strong>Filter:</strong> no plaintext <code class="docutils literal notranslate"><span class="pre">body</span></code> field; summary must not contain <code class="docutils literal notranslate"><span class="pre">ct</span></code></p></li>
|
|
<li><p><strong>Timeout:</strong> 5s NATS; 15s NPE sidecar</p></li>
|
|
</ul>
|
|
</section>
|
|
<section id="errors">
|
|
<h2>Errors<a class="headerlink" href="#errors" title="Link to this heading">¶</a></h2>
|
|
<p>Network Error Bundle: <code class="docutils literal notranslate"><span class="pre">ct_sender</span></code> (sender-only status) and <code class="docutils literal notranslate"><span class="pre">ct_system</span></code>
|
|
(ops bounce, no mail body). <code class="docutils literal notranslate"><span class="pre">logging.mode=summary</span></code>.</p>
|
|
<p>Variables: <code class="docutils literal notranslate"><span class="pre">crypto.mode</span></code>, <code class="docutils literal notranslate"><span class="pre">routing.mode=passthrough</span></code>, <code class="docutils literal notranslate"><span class="pre">SM_LEAF_HUB</span></code>,
|
|
<code class="docutils literal notranslate"><span class="pre">SM_HTTP</span></code>. See system-git-sync <code class="docutils literal notranslate"><span class="pre">docs/VARIABLES.md</span></code>.</p>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
|
<div class="sphinxsidebarwrapper">
|
|
<h1 class="logo"><a href="#">secure-messaging</a></h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<search id="searchbox" style="display: none" role="search">
|
|
<div class="searchformwrapper">
|
|
<form class="search" action="search.html" method="get">
|
|
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
|
<input type="submit" value="Go" />
|
|
</form>
|
|
</div>
|
|
</search>
|
|
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
|
|
|
|
<div class="relations">
|
|
<h3>Related Topics</h3>
|
|
<ul>
|
|
<li><a href="#">Documentation overview</a><ul>
|
|
</ul></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="footer">
|
|
©2026, Verae.
|
|
|
|
|
|
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
|
|
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
|
|
|
|
|
|
<a href="_sources/index.rst.txt"
|
|
rel="nofollow">Page source</a>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
</html> |