Skip to content

Commit bd1b78a

Browse files
save file
1 parent 8bac4fa commit bd1b78a

File tree

1 file changed

+170
-58
lines changed

1 file changed

+170
-58
lines changed

utils/x509/verify-certificate/verify-certificate.html

Lines changed: 170 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,155 @@
11

22

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

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

7-
<title>verify certificate</title>
11+
<title>
12+
Verify Certificate
13+
</title>
14+
15+
<meta name=description content='verify x509 certificate'>
816

917
<base href='https://ext-code.com/utils/x509/verify-certificate/'>
10-
<base href='https://javascript-2020.github.io/utils/x509/verify-certificate/'>
18+
<link rel=canonical href='https://ext-code.com/utils/x509/verify-certificate/verify-certificate.html'>
1119

12-
<link rel='shortcut icon' type='image/x-icon' href='images/favicon.ico'>
20+
<link rel=icon href='images/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAASFBMVEVHcEwihb8ghsMkhb0hhcEog7gghsMjhL4hhcEghsQhhsIihcEghsMlhLwhhb8hhsIghsM1ga0jhb8hhsIihcEhhsIhhsIghsTjBA94AAAAF3RSTlMATPIXeAbnKIr6n1zZDjvF0QIwuGqyvwIDyU4AAAENSURBVCjPrZPZrsMgDESx2ZewU///n17SVFVF6H2qX1A4ymTGdhj7YXH+FR1c1pSq5MeOSheaIlItOLnBerLQWrCk9F0ZBiXPpeQ+0YBV31gaL1t8kDUrpnBJRtd1oBULEpeDjPB+eFfNGC/7J4mY6yct7rQLnoPN/BnClU/uESvr+HhQP7UQ/WptXvRXZr+x1g4mjTo7drTVGnNkRWFSzy8XYcktODqF5tkXblC5eGsrIGXTu8k0k2/mmQhpFlLaTfQADwJRzGO3EyI/ggAQIWVT7muUp7D1YOeh6g37635Oy6rbPJkcp63ZaUNDA6zqUYX53kykU9xtWuRRnYmKlts9Lkz0f/8BKdlv6w+Edg1IkaSBUwAAAABJRU5ErkJggg=='>
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" : "Verify Certificate",
28+
"url" : "https://ext-code.com/utils/x509/verify-certificate/verify-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('verify-certificate.html');
45+
console.log();
46+
console.json=v=>console.log(JSON.stringify(v,null,4));
47+
var nodeforge;
1348

49+
50+
var df=true,did='html'
51+
;
52+
53+
var ext;
54+
var $;
55+
var datatype;
56+
var menumod;
57+
var keydown;
58+
var debug;
1459

15-
<script init>
16-
</script init>
60+
61+
var menu;
62+
63+
64+
var hdr;
65+
66+
//:
67+
68+
69+
async function init(){
70+
71+
72+
await load();
73+
74+
75+
menu = menumod();
76+
77+
78+
hdr = mod['x509-hdr'];
79+
80+
hdr.initmod({ext,$,menu});
81+
82+
await Promise.all([
83+
hdr.init(),
84+
]);
85+
86+
87+
88+
initdom(document.body);
89+
90+
91+
console.log('ready');
92+
}//init
93+
94+
95+
(async()=>{
96+
97+
mod.stack.add;
98+
99+
var {ext} = await import('https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js');
100+
101+
var promise = ext.load.libs(
102+
'js/dom/$.js.api',
103+
'js/core/datatype.js',
104+
'js/dom/menumod/menumod.js',
105+
'js/dom/keydown/keydown.js',
106+
'js/debug/debug.js',
107+
);
108+
[$,datatype,menumod,keydown,debug] = await promise;
109+
110+
111+
mod.stack.complete;
112+
113+
})();
114+
115+
116+
async function load(){
117+
118+
await Promise.all([load.ext(),load.nodeforge()]);
119+
120+
}//load
121+
122+
123+
load.ext = async function(){
124+
125+
var res = await fetch('https://raw.githubusercontent.com/javascript-2020/ext-code/main/ext-loader.js')
126+
var txt = await res.text();
127+
ext = eval(txt);
128+
[$,datatype] = await ext.load.libs('js/dom/$.js','js/core/datatype.js');
129+
130+
}//ext
131+
132+
133+
load.nodeforge = async function(){
134+
135+
var txt = localStorage['node-forge'];
136+
if(!txt){
137+
var url = 'https://cdn.jsdelivr.net/npm/node-forge/+esm';
138+
//console.log(url);
139+
var res = await fetch(url);
140+
txt = await res.text();
141+
localStorage['node-forge'] = txt;
142+
}
143+
var blob = new Blob([txt],{type:'text/javascript'});
144+
var url = window.URL.createObjectURL(blob);
145+
nodeforge = await import(url);
146+
nodeforge = nodeforge.default;
147+
//console.log(nodeforge);
148+
149+
}//nodeforge
150+
151+
152+
</script>
17153

18154

19155
<style>
@@ -22,6 +158,11 @@
22158
{height:100%}
23159
body
24160
{height:calc(100% - 42px);margin:20px;display:flex;flex-direction:column;font-family:arial}
161+
162+
163+
x509-hdr
164+
{margin-bottom:20px}
165+
25166
.hdr
26167
{font-family:arial;position:relative;margin-top:0;margin-bottom:20px;background:white;
27168
padding-bottom:10px;border-bottom:3px solid lightblue}
@@ -51,12 +192,30 @@
51192
{color:red;border:1px solid red}
52193

53194

195+
.visually-hidden
196+
{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;
197+
clip:rect(0 0 0 0) !important;white-space:nowrap !important;border:0 !important}
198+
199+
54200
</style>
55201

56202
</head>
57203

58204
<body>
59205

206+
207+
<x509-hdr component=grp v2.0>
208+
<h1 class=visually-hidden>
209+
Verify Certificate
210+
</h1>
211+
<img class=title src='images/verify-certificate.png' style='top:5px;height:55px' alt='verify certificate'>
212+
<time slot=date datetime=2025-11-15>
213+
15 Nov 2025
214+
</time>
215+
</x509-hdr>
216+
217+
218+
<!--
60219
<div class=hdr>
61220
<a class=hdr-icon href='https://javascript-2020.github.io/'>
62221
<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==' />
@@ -77,6 +236,8 @@
77236
24 Apr 2025
78237
</div>
79238
</div hdr>
239+
-->
240+
80241

81242
<div id=btns>
82243
<input value=clear type=button>
@@ -92,15 +253,11 @@
92253

93254

94255
<script>
95-
96-
console.clear();
97-
console.log('verify-certificate.html');
98-
console.log();
99-
console.json=v=>console.log(JSON.stringify(v,null,4));
256+
257+
100258
var $;
101259
var datatype;
102260

103-
var nodeforge;
104261

105262

106263
var root;
@@ -111,26 +268,15 @@
111268

112269

113270
//
114-
115-
116-
setTimeout(init,50);
117-
118-
async function init(){
119-
120-
await load();
121-
initdom();
122-
123-
}//init
124-
125271

126-
//:
127-
128272

129273
function initdom(){
130274

131275

132276
var btns = $('#btns');
133277

278+
hdr.initdom();
279+
134280
$(btns,'[value=clear]').onclick = btn.clear;
135281
$(btns,'[value=root]').onclick = btn.root;
136282
$(btns,'[value="add cert"]').onclick = btn.add;
@@ -235,40 +381,6 @@
235381
}//verify
236382

237383

238-
async function load(){
239-
240-
await Promise.all([load.ext(),load.nodeforge()]);
241-
242-
}//load
243-
244-
245-
load.ext = async function(){
246-
247-
var res = await fetch('https://raw.githubusercontent.com/javascript-2020/ext-code/main/ext-loader.js')
248-
var txt = await res.text();
249-
ext = eval(txt);
250-
[$,datatype] = await ext.load.libs('js/dom/$.js','js/core/datatype.js');
251-
252-
}//ext
253-
254-
255-
load.nodeforge = async function(){
256-
257-
var txt = localStorage['node-forge'];
258-
if(!txt){
259-
var url = 'https://cdn.jsdelivr.net/npm/node-forge/+esm';
260-
//console.log(url);
261-
var res = await fetch(url);
262-
txt = await res.text();
263-
localStorage['node-forge'] = txt;
264-
}
265-
var blob = new Blob([txt],{type:'text/javascript'});
266-
var url = window.URL.createObjectURL(blob);
267-
nodeforge = await import(url);
268-
nodeforge = nodeforge.default;
269-
//console.log(nodeforge);
270-
271-
}//nodeforge
272384

273385

274386
load.cert = function(mode){

0 commit comments

Comments
 (0)