Skip to content

Commit aadadfd

Browse files
save file
1 parent f1aad13 commit aadadfd

File tree

1 file changed

+136
-12
lines changed

1 file changed

+136
-12
lines changed

utils/x509/generate-key-pair/generate-key-pair.html

Lines changed: 136 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,117 @@
11

22

3+
<!DOCTYPE html>
4+
5+
36
<html>
47

58
<head>
9+
<meta charset=utf-8>
610

7-
<title>generate key pair</title>
11+
<title>
12+
Generate Key Pair
13+
</title>
14+
15+
<meta name=description content='generate rsa key pair'>
816

917
<base href='https://ext-code.com/utils/x509/generate-key-pair/'>
10-
<base href='https://javascript-2020.github.io/utils/x509/generate-key-pair/'>
18+
<link rel=canonical href='https://ext-code.com/utils/x509/generate-key-pair/generate-key-pair.html'>
19+
20+
<link rel=icon type='image/x-icon' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAVFBMVEVHcEwAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEAAAABAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEAAAABAQEAAACsl1DQAAAAG3RSTlMA+Nbo8C8MBGaeFKt9TBx0ijlZy5XAUkQi4Lb6C8LjAAABM0lEQVQoz31TibKDIAzkkBsqBbXV/f//fMHOq9IrMw6jmw2bTWSsC6PZ19Bp2ja3fMm4Bw4KHu6f0MtMkBCUsnnzDkegJu9TBeISXyt4gfVKRx5XiDKI1MPXAY6UTwgOQ1n33FPcODJjC8eWwZMjBV0HSiIYE8BtwKD8jKGja/qwkIBqB1TNLGC76pZD2hXztgPlFdYT4CqE445uJQHLm/YaKMUSepMQlx5u7EWSqSXFlbzpUbUTSBh5S0/wzykq9SCPdKS5gTz7wxEpJ3X9v82nKCBPnlMTkOJB3qP5dmppFG3Qh9TyIuwShxO5qdzMu+xnudp3baYzmTHXD+RMNqpk0WeTn89XK5vOthtH8cXqozD4Svb7z/uscrzd20p8/yHYCJQfMG1e/AHrHH4VZ+bh2h/qTRXn16T2TQAAAABJRU5ErkJggg=='>
21+
<meta name=viewport content='width=device-width, initial-scale=1'>
22+
23+
<script type='application/ld+json'>
24+
{
25+
"@context" : "https://schema.org",
26+
"@type" : "SoftwareApplication",
27+
"name" : "Generate Key Pair",
28+
"url" : "https://ext-code.com/utils/x509/generate-https-certificate/generate-https-certificate.html",
29+
"author" : {"@type":"Person","name":"Matthew Richards"},
30+
"description" : "Generate rsa keypair",
31+
"applicationCategory" : "DeveloperApplication",
32+
"operatingSystem" : "All",
33+
"browserRequirements" : "Requires JavaScript-enabled browser",
34+
"softwareVersion" : "1.0.0",
35+
"offers" : {"@type":"Offer","price":"0","priceCurrency":"GBP"}
36+
}
37+
</script>
38+
39+
40+
<script src='https://libs.ext-code.com/js/dom/component/component.js'></script>
41+
42+
<script init>
43+
console.clear();
44+
console.log('generate-key-pair-v2.0.html');
45+
console.log();
46+
console.json=v=>console.log(JSON.stringify(v,null,4));
1147

12-
<link rel='shortcut icon' type='image/x-icon' href='images/favicon.ico'>
48+
var df=true,did='gen-https-cert'
49+
;
50+
51+
var ext;
52+
var $;
53+
var datatype;
54+
var menumod;
55+
var keydown;
56+
var debug;
1357

1458

15-
<script init>
59+
var menu;
60+
61+
62+
var hdr;
63+
64+
//:
65+
1666

67+
async function init(){
68+
69+
70+
menu = menumod();
71+
72+
73+
hdr = mod['x509-hdr'];
74+
75+
hdr.initmod({ext,$,menu});
76+
77+
await Promise.all([
78+
hdr.init(),
79+
]);
80+
81+
82+
83+
initdom(document.body);
84+
85+
86+
console.log('ready');
87+
}//init
88+
89+
90+
91+
92+
(async()=>{
93+
94+
mod.stack.add;
95+
96+
var {ext} = await import('https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js');
97+
98+
var promise = ext.load.libs(
99+
'js/dom/$.js.api',
100+
'js/core/datatype.js',
101+
'js/dom/menumod/menumod.js',
102+
'js/dom/keydown/keydown.js',
103+
'js/debug/debug.js',
104+
);
105+
[$,datatype,menumod,keydown,debug] = await promise;
106+
107+
108+
mod.stack.complete;
109+
110+
})();
111+
17112
</script init>
113+
114+
18115

19116

20117
<style>
@@ -23,6 +120,10 @@
23120
{height:100%}
24121
body
25122
{height:calc(100% - 42px);margin:20px;display:flex;flex-direction:column;font-family:arial}
123+
124+
x509-hdr
125+
{margin-bottom:20px}
126+
26127
.hdr
27128
{font-family:arial;position:relative;margin-top:0;margin-bottom:20px;background:white;
28129
padding-bottom:10px;border-bottom:3px solid lightblue}
@@ -58,6 +159,12 @@
58159
{flex:1}
59160
pre
60161
{border:1px solid lightgray;padding:10px;font-family:monospace}
162+
163+
164+
.visually-hidden
165+
{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;
166+
clip:rect(0 0 0 0) !important;white-space:nowrap !important;border:0 !important}
167+
61168

62169
</style>
63170

@@ -67,7 +174,21 @@
67174

68175
<body>
69176

70-
177+
178+
<x509-hdr component=grp v2.0>
179+
<h1 class=visually-hidden>
180+
Generate Key Pair
181+
</h1>
182+
<img class=title src='images/generate-key-pair.png' style='top:5px;height:55px' alt='generate key pair'>
183+
<time slot=date datetime=2025-11-15>
184+
15 Nov 2025
185+
</time>
186+
</x509-hdr>
187+
188+
189+
190+
191+
<!--
71192
<div class=hdr>
72193
<a class=hdr-icon href='https://javascript-2020.github.io/'>
73194
<img class=hdr-icon-img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAqFBMVEVHcEwjmpckopg9f3YxpJM6r5kjq58Nmp0Nn6QRoKExrpshnpgtoJUdoZwYnZ02spwYpaEmrZ8djpINn6Qtrp4inpcjqZ8SoqM3s5w0sp01spwrr58vr50oqpwdnpo0sZwtrJwUpKMMoaUtq50op5ssqpopppseqaM1sJwgpJ0NoaUSoaI3kYobqaMSpKQrr58PoaMVpaIOoKMLpKcXpaEkqp8Rm58YrKUL0CR4AAAAOHRSTlMACBkBCyinK59CQhUOLyKjqbUGpZgSYn6rp5WsekcmgkyWmCkmNB7AYTiuVgKuuo91i2PLn2lJ7kISMf4AAAElSURBVCjPrdPXloIwEAbgBDFKCRo6SO8lYEHd93+zxV7Zm2WuSL6Tk/MPEwBGLFH8SzFCeFiDXNeJ+7GtGds1D+ghDzzPzXX6xlJbq75s5KVLiJsSB76xIhd22Mz0pkyRnqzW2htD/SeUjL0EQKY60nqRvTLXGl64PR/SfDVxVvETZ123w8vN9Ur5YKUF4R9cd/WxqiePgCs3IMF1QXcVt6vK59tSqyjN4hwQbhS8mUuvWTLbwYtTQGhEjLHVPprv+4ztQ8AeRVn50uipBcXg/IPgfPaFF+z1axyeMEkcJwwdYHHZINQ02gALS49lJcQMci/COGzdue8apRQwNz4tYvM207JSRVEUhvtW6KeBIFVVbds07xPncZfCfWSK+UtNJ/9+VL/nTBuX7xjDZwAAAABJRU5ErkJggg==' />
@@ -88,6 +209,9 @@
88209
22 Apr 2025
89210
</div>
90211
</div hdr>
212+
-->
213+
214+
91215

92216

93217
<div id=btns>
@@ -159,13 +283,13 @@
159283
//:
160284

161285

162-
setTimeout(initdom,50);
163-
164286

165-
function initdom(){
287+
function initdom(rootnode){
166288

167289
var root = document.body;
168290

291+
hdr.initdom(root);
292+
169293
$('[value=generate]').onclick = btn.generate;
170294

171295

@@ -263,16 +387,16 @@
263387
var format = type=='public' ? 'spki' : 'pkcs8';
264388
var buf = await window.crypto.subtle.exportKey(format,key);
265389
var b64 = buf_b64(buf);
266-
var pem = hdr(type)+b64+ftr(type);
390+
var pem = cert_hdr(type)+b64+cert_ftr(type);
267391
var txt = pretty.out(pem);
268392
return txt;
269393

270394
}//export
271395
fn.export.public = public=>fn.export('public',public);
272396
fn.export.private = private=>fn.export('private',private);
273397

274-
var hdr = (type='public')=>`-----BEGIN ${type.toUpperCase()} KEY-----`;
275-
var ftr = (type='public')=>`-----END ${type.toUpperCase()} KEY-----`;
398+
var cert_hdr = (type='public')=>`-----BEGIN ${type.toUpperCase()} KEY-----`;
399+
var cert_ftr = (type='public')=>`-----END ${type.toUpperCase()} KEY-----`;
276400

277401
function buf_b64(buf){
278402

@@ -287,7 +411,7 @@
287411

288412
var {hdr,b64,ftr} = extract(pem);
289413
var txt = hdr+'\n';
290-
var n = hdr.length;
414+
var n = 64;
291415
var i = 0;
292416
while(i<b64.length){
293417

0 commit comments

Comments
 (0)