Skip to content

Instantly share code, notes, and snippets.

@kamituel
Created December 9, 2014 13:06
Show Gist options
  • Save kamituel/0017c949cdf3e64b46db to your computer and use it in GitHub Desktop.
Save kamituel/0017c949cdf3e64b46db to your computer and use it in GitHub Desktop.
Verify signature in JS using jsrasign library
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/core.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/sha1.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/sha256.js"></script>
<script src="ext/jsbn.js"></script>
<script src="ext/jsbn2.js"></script>
<script src="ext/rsa.js"></script>
<script src="ext/rsa2.js"></script>
<script src="ext/sha1.js"></script>
<script src="ext/sha256.js"></script>
<script src="ext/base64.js"></script>
<script src="crypto-1.1.js"></script>
<script src="asn1hex-1.1.min.js"></script>
<script src="rsapem-1.1.min.js"></script>
<script src="rsasign-1.2.js"></script>
<script src="x509-1.1.min.js"></script>
<script src="keyutil-1.0.js"></script>
<script src="ecdsa-modified-1.0.js"></script>
<script>
var pubkey = (function() {/*!-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzIVNX6qldWINc81mTDJ7
zcMD5UVcNl17mFKfk9Wd2FUA702UiDK0wlkFUg7G/o9QgBmsj0vksyW4XciJEGCS
Hkop1QX3pVe3tqhMSkIKGFGHpvcpX1jLbC2fTRXQ5SJI8tr11+TH/qVd/4U6YZXQ
QfeN1KrcAPtdBcK2MElGgzrP48fmFkLrrXKmFTMLnEQlwjO2SpByeiyFttmAbA29
mbebEYfe6zn0jMGYf3ejLJkqxxQd6cZJBMvYRdjKRZ7OFSEbYn5Ex1tYjTFgOyt2
vY9eJ9dzbrzzidrJor766pAtwWmcp6xCfWUMkRFVTxSeXuXbZiEcoxbwD79f1Oa4
hwIDAQAB
-----END PUBLIC KEY-----*/})
.toString()
.replace(/^[^\/]+\/\*!?/, '')
.replace(/\*\/[^\/]+$/, '');
var value = 'some value'
, signature = '9e651c464210fd2eafef689c844503965bd8fd2fa81dd2c48fcac340a84' +
'c13216d4e52ea04bd27ff1b9629597dcce2f059eb83455fa3422f912424' +
'9baf21e5152baf3f52b81be61f767a8303f34eccbe61909dbf2b853b3da' +
'8a5118a07b5159a1f5f595eb95c879f0c1b1091de3f4cb07eaee2c92ece' +
'590554cb946ed76137e56d10ca73931a4e92355ff2113cc5c115e11711e' +
'1b4bb8e8fb04f7086d64a25657fa29e5111210a9ecde9c22acf064f922e' +
'23cc2afd8beef160f8ea8f4d28a4abcf516fdad9b5ac8715acc258527ea' +
'422c39b1aed292209795d11fe27691594e04fb081ae28fed06f53b14009' +
'bd0a83a41da7dc84c16febda0a8b8426263290b'
, sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA",
"prov": "cryptojs/jsrsa"})
, key = KEYUTIL.getKey(pubkey)
;
sig.initVerifyByPublicKey(key);
sig.updateString(value);
var isValid = sig.verify(signature);
console.log(isValid);
</script>
</head>
<body>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment