-
Notifications
You must be signed in to change notification settings - Fork 48
/
sample_verify2.html
136 lines (121 loc) · 5.56 KB
/
sample_verify2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<html>
<head>
<title>Sample JWS Verification Application</title>
<script language="JavaScript" type="text/javascript" src="http://kjur.github.io/jsrsasign/jsrsasign-latest-all-min.js"></script>
<script language="JavaScript" type="text/javascript" src="ext/json-sans-eval-min.js"></script>
<script language="JavaScript" type="text/javascript" src="jws-3.2.js"></script>
<style type="text/css">
TD {vertical-align: top; border: solid 1px #000000; }
</style>
<script language="JavaScript" type="text/javascript">
function doVerify() {
var sJWS = document.form1.jws1.value;
var sCert = document.form1.cert1.value;
var jws = new KJUR.jws.JWS();
var result = 0;
try {
result = jws.verifyJWSByPemX509Cert(sJWS, sCert);
} catch (ex) {
alert("Error: " + ex);
result = 0;
}
document.form1.im_enchead1.value = jws.parsedJWS.headB64U;
document.form1.im_encpayload1.value = jws.parsedJWS.payloadB64U;
document.form1.im_encsigval1.value = jws.parsedJWS.sigvalB64U;
document.form1.im_siginput1.value = jws.parsedJWS.si;
document.form1.im_sigval_h1.value = jws.parsedJWS.sigvalH;
document.form1.im_head1.value = jws.parsedJWS.headS;
document.form1.im_payload1.value = jws.parsedJWS.payloadS;
if (result == 1) {
alert("JWS signature is *Valid*.");
} else {
alert("JWS signature is *Invalid*.");
}
}
</script>
</head>
<body>
<form name="form1">
<h1>Sample JWS Verification Application</h1>
<p>
Default values are cited from <a href="http://tools.ietf.org/html/draft-jones-json-web-signature-04#appendix-A.2" target="_blank">
"draft-jones-json-web-signature-04 Annex.2"</a>.
</p>
<table width="100%">
<tbody>
<tr><td rowspan="2">Input</td><td>JWS</td><td colspan="2">
<textarea name="jws1" rows="8" cols="100">eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.qCW4l5nfdvBt-yl_OiYRFrKkribqbDbmQ9ULyemAgCNXAAr70hN5-IERIefzySpm6Er4UuX_aXcnIXgMvK-hFMFhLOuJckrDEe1Pz-OzqScvGSJUbeOsd_nB9E2BNVYZrgMESQOifiEyUtWdbzCoMgf9nQg2AEWbVSaPImqQkGp-JZsJsvMUC-3A3RcimGIjLv-A8skyhNufASd6DPgk46Ydqt6vi2L6d2InvZSkhTSsYhbfm9TgrKyA906YHE0zE-asuXAzI1ISPxAjlO8ZhekEvg6teaa-1cSQQdOFj-ZWpqVsEI1YXr7zuvugWQhqfBqqPcT6fP5t3ff8FKwV9w</textarea></td></tr>
<tr><td>PEM X.509 Certificate verify with</td><td colspan="2">
<textarea name="cert1" cols="65" rows="8">-----BEGIN CERTIFICATE-----
MIIDMjCCAhqgAwIBAgIJAKMfG/B2MKd5MA0GCSqGSIb3DQEBBQUAMBoxCzAJBgNV
BAYTAkpQMQswCQYDVQQKEwJ6MzAeFw0xMDA1MzEwNjE4MDhaFw0yMDA1MjgwNjE4
MDhaMBoxCzAJBgNVBAYTAkpQMQswCQYDVQQKEwJ6MzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAOKosPD1rOz6Z5wtgVBKA0XMFxfKavF09f9x3N3LlCcF
/6LTXn6/waJq93bTNBESzdw63qQl77sxFORXCVQ1Ad7CPqRbY4ywVw/8yZri9wH4
PdSfae/fg5vuN3EesLissFSceQySHbMBeqEAw84cLvPXdlecdNmlwfS6nV5D8Ijt
HkebP8R14AEpfoag3VS/YS6Hd4hmvZ1e3BJQm3JfFFVzTyZ0AH2oimsxfoQnZf7M
qyIdCgmeaKYILEyYm6PKhVwZhuD5E+WG4RxNdcGCiC8GRUr2fYnXUT0CtwrYBYgZ
121cFObeu7Z/aTIsx4MqYLHwaHqMga6U7nOHoEgqY7ECAwEAAaN7MHkwHQYDVR0O
BBYEFKO4NcUDh3J5c7XD7j4pVXnzIfALMEoGA1UdIwRDMEGAFKO4NcUDh3J5c7XD
7j4pVXnzIfALoR6kHDAaMQswCQYDVQQGEwJKUDELMAkGA1UEChMCejOCCQCjHxvw
djCneTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQC8JdiwJF22/3nB
IxJT/gXXN10cub6O+x9q64ls7dpGpBvbi4/lJgZOsZqoJiswU5WOKZ4MTOmMHe4W
e/MHuhcjsgf9EHHYZQ1reBYi/l9mBBbYFGs0zSv1CyjbwkyF36nr/8sWdYf4ZtXQ
nzTGvoa6oTOOTmmj3Bwl3CHwonvgAJUCHY/UmWFzH8Sf0dDW7iJBj+ZWfjuSlSQe
2ninrEpfA4v2V1p3LOH+layZLDMJHkNCq8eoU1MbJi07cHxLWtlwliNOiRboaiYl
1wtWR7ZY4HZCPeyb0tanf58rBQAXElaCF3fmfHrlpxoJBsQP1NbFrBs2haOIEZ4E
K3V9/Bpi
-----END CERTIFICATE-----</textarea>
</td></tr>
<tr><td colspan="4">
<input type="button" value="Verify JWS Signature" onClick="doVerify();"/><br/>
</td></tr>
<tr><td colspan="2">Encoded Head</td><td colspan="2">
<textarea name="im_enchead1" cols="100" rows="1" readonly></textarea>
</td></tr>
<tr><td colspan="2">Encoded Payload</td><td colspan="2">
<textarea name="im_encpayload1" cols="100" rows="1" readonly></textarea>
</td></tr>
<tr><td colspan="2">Encoded Signature Value</td><td colspan="2">
<textarea name="im_encsigval1" cols="100" rows="6" readonly></textarea>
</td></tr>
<tr><td colspan="2">Signature Input</td><td colspan="2">
<textarea name="im_siginput1" cols="100" rows="3" readonly></textarea>
</td></tr>
<tr><td colspan="2">Signature Value (Hex)</td><td colspan="2">
<textarea name="im_sigval_h1" cols="100" rows="8" readonly></textarea>
</td></tr>
<tr><td colspan="2">Head</td><td colspan="2">
<textarea name="im_head1" cols="100" rows="2" readonly></textarea>
</td></tr>
<tr><td colspan="2">Payload</td><td colspan="2">
<textarea name="im_payload1" cols="100" rows="3" readonly></textarea>
</td></tr>
</tbody>
</table>
</form>
<h3>USAGE</h3>
<ol>
<li>Fill JWS signature, modulus and public exponent of a public key if you need.</li>
<li>Then just press "Verify JWS Signature" button.</li>
<li>If the signature is valid, you will see a dialog 'JWS signature is '*Valid*'.
You may see an error dialog if it is malformed signature.</li>
</li>
<li>As for JWS signature generation, please see <a href="sample_generate.html">this sample</a>.</li>
</ol>
<center>
Copyright © 2012-2015 Kenji Urushima, All Rights Reserved.
</center>
<div align="right">
<a href="index.html">Go back to index</a>
</div>
<div align="right">
<a href="http://twitter.com/kjur/" target="_blank" alt="kjur on twitter">
<img src="http://www9.atwiki.jp/kurushima/pub/icon/icon_twitter.gif" border="0" width="20"/>
</a>
<a href="http://x5.choumusubi.com/bin/gg?069823300">
<img src="http://x5.choumusubi.com/bin/ll?069823300" border="0" width="20"/>
</a>
</div>
</body>
</html>