108 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html>
 | 
						|
  <head>
 | 
						|
    <title>BlueCrypt</title>
 | 
						|
    <style>
 | 
						|
      textarea {
 | 
						|
        width: 42em;
 | 
						|
        height: 10em;
 | 
						|
      }
 | 
						|
      /* need to word wrap the binary no space der */
 | 
						|
      .js-der-public, .js-der-private{
 | 
						|
        white-space: pre-wrap;      /* CSS3 */
 | 
						|
        white-space: -moz-pre-wrap; /* Firefox */
 | 
						|
        white-space: -pre-wrap;     /* Opera <7 */
 | 
						|
        white-space: -o-pre-wrap;   /* Opera 7 */
 | 
						|
        word-wrap: break-word;      /* IE */
 | 
						|
      }
 | 
						|
    </style>
 | 
						|
  </head>
 | 
						|
  <body>
 | 
						|
    <h1>@bluecrypt/keypairs: Universal keygen & signing for browsers</h1>
 | 
						|
    <p>Keypairs.js is <strong>easy-to-use browser crypto in kilobytes, not megabytes.</strong></p>
 | 
						|
 | 
						|
    <p>It's a modern alternative to larger, legacy libraries like PKI.js and rsasign,
 | 
						|
    with more universal support for keygen, signing, and verification (including PKI, X509, JOSE, JWS, and JWT)
 | 
						|
    at a fraction of the cost.</p>
 | 
						|
 | 
						|
    <p>This is intended to be explored with your JavaScript console open.</p>
 | 
						|
    <pre><code><script src="<a href="https://rootprojects.org/keypairs/bluecrypt-keypairs.js">https://rootprojects.org/keypairs/bluecrypt-keypairs.js</a>"></script></code></pre>
 | 
						|
    <pre><code><script src="<a href="https://rootprojects.org/keypairs/bluecrypt-keypairs.min.js">https://rootprojects.org/keypairs/bluecrypt-keypairs.min.js</a>"></script></code></pre>
 | 
						|
    <a href="https://git.rootprojects.org/root/bluecrypt-keypairs.js">Documentation</a>
 | 
						|
 | 
						|
    <h2>Keypair Generation</h2>
 | 
						|
    <form class="js-keygen">
 | 
						|
      <p>Key Type:</p>
 | 
						|
      <div>
 | 
						|
        <input type="radio" id="-ktyEC"
 | 
						|
         name="kty" value="EC" checked>
 | 
						|
        <label for="-ktyEC">ECDSA</label>
 | 
						|
        <input type="radio" id="-ktyRSA"
 | 
						|
         name="kty" value="RSA">
 | 
						|
        <label for="-ktyRSA">RSA</label>
 | 
						|
      </div>
 | 
						|
      <div class="js-ec-opts">
 | 
						|
        <p>EC Options:</p>
 | 
						|
        <label for="-crv2"><input type="radio" id="-crv2"
 | 
						|
         name="ec-crv" value="P-256" checked>P-256</label>
 | 
						|
        <label for="-crv3"><input type="radio" id="-crv3"
 | 
						|
         name="ec-crv" value="P-384">P-384</label>
 | 
						|
        <!-- label for="-crv5"><input type="radio" id="-crv5"
 | 
						|
         name="ec-crv" value="P-521">P-521</label -->
 | 
						|
      </div>
 | 
						|
      <div class="js-rsa-opts" hidden>
 | 
						|
        <p>RSA Options:</p>
 | 
						|
        <label for="-modlen2"><input type="radio" id="-modlen2"
 | 
						|
         name="rsa-len" value="2048" checked>2048</label>
 | 
						|
        <label for="-modlen3"><input type="radio" id="-modlen3"
 | 
						|
         name="rsa-len" value="3072">3072</label>
 | 
						|
        <label for="-modlen5"><input type="radio" id="-modlen5"
 | 
						|
         name="rsa-len" value="4096">4096</label>
 | 
						|
      </div>
 | 
						|
      <button class="js-generate" hidden>Generate</button>
 | 
						|
    </form>
 | 
						|
 | 
						|
    <div class="js-loading" hidden>Loading</div>
 | 
						|
 | 
						|
    <details class="js-toc-jwk" hidden>
 | 
						|
      <summary>JWK Keypair</summary>
 | 
						|
      <pre><code class="js-jwk"> </code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-der-private" hidden>
 | 
						|
      <summary>DER Private Binary</summary>
 | 
						|
      <pre><code class="js-der-private"> </code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-der-public" hidden>
 | 
						|
      <summary>DER Public Binary</summary>
 | 
						|
      <pre><code class="js-der-public"> </code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-pem js-toc-pem-pkcs1-private" hidden>
 | 
						|
      <summary>PEM Private (base64-encoded PKCS1 DER)</summary>
 | 
						|
      <pre><code  class="js-input-pem-pkcs1-private" ></code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-pem js-toc-pem-sec1-private" hidden>
 | 
						|
      <summary>PEM Private (base64-encoded SEC1 DER)</summary>
 | 
						|
      <pre><code  class="js-input-pem-sec1-private" ></code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-pem js-toc-pem-pkcs8-private" hidden>
 | 
						|
      <summary>PEM Private (base64-encoded PKCS8 DER)</summary>
 | 
						|
      <pre><code  class="js-input-pem-pkcs8-private" ></code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-pem js-toc-pem-pkcs1-public" hidden>
 | 
						|
      <summary>PEM Public (base64-encoded PKCS1 DER)</summary>
 | 
						|
      <pre><code  class="js-input-pem-pkcs1-public" ></code></pre>
 | 
						|
    </details>
 | 
						|
    <details class="js-toc-pem js-toc-pem-spki-public" hidden>
 | 
						|
      <summary>PEM Public (base64-encoded SPKI/PKIX DER)</summary>
 | 
						|
      <pre><code  class="js-input-pem-spki-public" ></code></pre>
 | 
						|
    </details>
 | 
						|
 | 
						|
    <script src="./lib/bluecrypt-encoding.js"></script>
 | 
						|
    <script src="./lib/asn1-packer.js"></script>
 | 
						|
    <script src="./lib/x509.js"></script>
 | 
						|
    <script src="./lib/ecdsa.js"></script>
 | 
						|
    <script src="./lib/rsa.js"></script>
 | 
						|
    <script src="./lib/keypairs.js"></script>
 | 
						|
    <script src="./app.js"></script>
 | 
						|
  </body>
 | 
						|
</html>
 |