devolutions-crypto 0.10.1

An abstraction layer for the cryptography used by Devolutions
Documentation
<!-- Mobile header -->
<header class="mobile-header">
  <button (click)="w3Open()">&#9776;</button>
  <span>Devolutions Crypto</span>
</header>

<div class="page-inner">

  <div class="page-heading">
    <fa-icon size="3x" [icon]="faUserSecret"></fa-icon>
    <h1>Secret Sharing</h1>
  </div>

  <div class="card">
    <div class="card-title">Shares Generation</div>
    <div class="card-body">
      <form [formGroup]="generateSharesForm" (ngSubmit)="generateShares()">
        <div class="field">
          <label>Number of shares</label>
          <input type="number" formControlName="nbShares" required placeholder="E.g. 5">
        </div>
        <div class="field">
          <label>Threshold</label>
          <input type="number" formControlName="threshold" required placeholder="E.g. 3">
        </div>
        <div class="field">
          <label>Secret length</label>
          <input type="text" formControlName="secretLength" placeholder="Optional">
        </div>
        <div class="field">
          <button type="submit" class="btn btn-primary">Generate</button>
        </div>
        <div class="field">
          <span class="result-label">Result</span>
          <ul class="key-list">
            @for (key of generatedKeysBase64; track key) {
              <li>{{ key }}</li>
            }
          </ul>
        </div>
      </form>
    </div>
  </div>

  <div class="card">
    <div class="card-title">Join Shares</div>
    <div class="card-body">
      <form [formGroup]="joinSharesForm" (ngSubmit)="joinShares()">
        <div class="field">
          <label>Add a share</label>
          <input type="text" formControlName="addSharekey" required placeholder="Paste a share">
        </div>
        <div class="field">
          <button type="button" class="btn btn-primary" (click)="addShare()">Add Share</button>
        </div>
        <div class="field">
          <span class="result-label">Shares added</span>
          <ul class="key-list">
            @for (key of joinedSharesToShow; track key) {
              <li>{{ key }}</li>
            }
          </ul>
        </div>
        <div class="field">
          <button type="submit" class="btn btn-primary">Join Shares</button>
        </div>
        <div class="field">
          <span class="result-label">Result</span>
          <textarea rows="5" formControlName="joinResult" placeholder="Reconstructed secret will appear here"></textarea>
        </div>
      </form>
    </div>
  </div>

</div>