forked from rachanon/stdbWeb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
431 lines
9.8 KiB
431 lines
9.8 KiB
9 years ago
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
|
||
|
<head>
|
||
|
<meta charset='utf-8' />
|
||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
|
||
|
<meta name="description" content="jsjws : pure JavaScript implementation of JSON Web Token(JWT) and JSON Web Signature(JWS)" />
|
||
|
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
|
||
|
<style>
|
||
|
.inner {
|
||
|
position: relative;
|
||
|
max-width: 100%;
|
||
|
padding: 20px 10px;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
th {
|
||
|
font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||
|
padding: 4px;
|
||
|
background: #373737;
|
||
|
color: #fff;
|
||
|
}
|
||
|
td {
|
||
|
padding: 2px;
|
||
|
border: 1px solid #373737;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<title>jsjws - Algorithm Support Matrix of JWT/JWS implementations</title>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<!-- HEADER -->
|
||
|
<div id="header_wrap" class="outer">
|
||
|
<header class="inner">
|
||
|
<h1 id="project_title">Algorithm Support Matrix of JWT/JWS Implementations</h1>
|
||
|
<a href="http://kjur.github.io/jsjws/">TOP</a> |
|
||
|
<a href="https://github.com/kjur/jsjws/tags/" target="_blank">DOWNLOADS</a> |
|
||
|
<a href="https://github.com/kjur/jsjws/wiki#programming-tutorial">TUTORIALS</a> |
|
||
|
<a href="http://kjur.github.io/jsjws/api/" target="_blank">API REFERENCE</a> |
|
||
|
<a href="http://kjur.github.io/jsjws/index.html#demo" target="_blank">DEMOS</a> |
|
||
|
</header>
|
||
|
</div>
|
||
|
|
||
|
<!-- MAIN CONTENT -->
|
||
|
<div id="main_content_wrap" class="outer">
|
||
|
<section id="main_content" class="inner">
|
||
|
|
||
|
<!-- now editing -->
|
||
|
<div><i>LAST UPDATE: 2014-Jun-06</i></div>
|
||
|
<p>
|
||
|
There are many implementations of JWT/JWS and
|
||
|
below shows which algorithms are supported.
|
||
|
If you know any aother implementation or find a mistake in the table
|
||
|
please let me know.
|
||
|
</p>
|
||
|
|
||
|
<table>
|
||
|
<tr>
|
||
|
<th>impl</th>
|
||
|
<th>language</th>
|
||
|
<th>HS256</th>
|
||
|
<th>HS384</th>
|
||
|
<th>HS512</th>
|
||
|
<th>RS256</th>
|
||
|
<th>RS384</th>
|
||
|
<th>RS512</th>
|
||
|
<th>ES256</th>
|
||
|
<th>ES384</th>
|
||
|
<th>ES512</th>
|
||
|
<th>PS256</th>
|
||
|
<th>PS384</th>
|
||
|
<th>PS512</th>
|
||
|
<th>none</th>
|
||
|
<th nowrap>Crypto Lib</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="http://kjur.github.io/jsjws/">jsjws</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www-cs-students.stanford.edu/~tjw/jsbn/">Tom Wu's RSA</a>,
|
||
|
<a href="http://kjur.github.io/jsrsasign/">jsrsasign</a>,
|
||
|
<a href="http://code.google.com/p/crypto-js/">CryptoJS</a>,
|
||
|
<a href="http://crypto.stanford.edu/sjcl/">sjcl</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://npmjs.org/package/jsjws">node-jsjws</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www-cs-students.stanford.edu/~tjw/jsbn/">Tom Wu's RSA</a>,
|
||
|
<a href="http://kjur.github.io/jsrsasign/">jsrsasign</a>,
|
||
|
<a href="http://code.google.com/p/crypto-js/">CryptoJS</a>,
|
||
|
<a href="http://crypto.stanford.edu/sjcl/">sjcl</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://npmjs.org/package/jwt">jwt-node</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www-cs-students.stanford.edu/~tjw/jsbn/">Tom Wu's RSA</a>,
|
||
|
<a href="http://kjur.github.io/jsrsasign/">jsrsasign</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/michaelrhanson/jwt-js">jwt-js</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www-cs-students.stanford.edu/~tjw/jsbn/">Tom Wu's RSA</a>,
|
||
|
<a href="http://kjur.github.io/jsrsasign/">jsrsasign</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/mozilla/jwcrypto">jwcrypto</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www-cs-students.stanford.edu/~tjw/jsbn/">Tom Wu's RSA</a>,
|
||
|
<a href="http://kjur.github.io/jsrsasign/">jsrsasign</a>,
|
||
|
<a href="http://crypto.stanford.edu/sjcl/">sjcl</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://npmjs.org/package/green-jwt">green-jwt</a></td>
|
||
|
<td>JavaScript</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://nodejs.org/api/crypto.html">node-crypto</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://bitbucket.org/b_c/jose4j/wiki/Home">jose.4.j</a></td>
|
||
|
<td>Java</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td nowrap>
|
||
|
Default JCE
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://bitbucket.org/nimbusds/nimbus-jose-jwt">Nimbus JWT</a></td>
|
||
|
<td>Java</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>
|
||
|
<a href="http://www.bouncycastle.org/java.html">BouncyCastle</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/nov/json-jwt">json-jwt</a></td>
|
||
|
<td>Ruby</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>Ruby(OpenSSL)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://pypi.python.org/pypi/jws/0.1.0">jws</a>
|
||
|
<td>Python</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>hashlib, ecdsa, Crypto.PublicKey.RSA module</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/rohe/pyjwkest">pyjwkest</a></td>
|
||
|
<td>Python</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>✔</td>
|
||
|
<td nowrap>
|
||
|
<a href="https://pypi.python.org/pypi/M2Crypto">M2Crypto</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/ritou/php-Akita_JOSE">php Akita JOSE</a></td>
|
||
|
<td>PHP</td>
|
||
|
<td>✔</td><!-- HS256 -->
|
||
|
<td>✔</td><!-- HS384 -->
|
||
|
<td>✔</td><!-- HS512 -->
|
||
|
<td>✔</td><!-- RS256 -->
|
||
|
<td>✔</td><!-- RS384 -->
|
||
|
<td>✔</td><!-- RS512 -->
|
||
|
<td>—</td><!-- ES256 -->
|
||
|
<td>—</td><!-- ES384 -->
|
||
|
<td>—</td><!-- ES512 -->
|
||
|
<td>—</td><!-- PS256 -->
|
||
|
<td>—</td><!-- PS384 -->
|
||
|
<td>—</td><!-- PS512 -->
|
||
|
<td>✔</td><!-- none -->
|
||
|
<td nowrap>?</td><!-- cryptlib -->
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/xaicron/p5-JSON-WebToken">p5 JSON WebToken</a></td>
|
||
|
<td>Perl</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>Digest::SHA, Crypt::OpenSSL::RSA module</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/johnsheehan/jwt">jwt for .NET</a></td>
|
||
|
<td>C#</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>CNG,CAPI</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/pingidentity/mod_auth_openidc/tree/master/src/jose">mod_auth_openidc</a></td>
|
||
|
<td>C</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>✔</td>
|
||
|
<td>—</td>
|
||
|
<td nowrap>OpenSSL</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td><a href="https://github.com/dvsekhvalnov/jose-jwt">JOSE JWT .NET</a></td>
|
||
|
<td>PHP</td>
|
||
|
<td>✔</td><!-- HS256 -->
|
||
|
<td>✔</td><!-- HS384 -->
|
||
|
<td>✔</td><!-- HS512 -->
|
||
|
<td>✔</td><!-- RS256 -->
|
||
|
<td>✔</td><!-- RS384 -->
|
||
|
<td>✔</td><!-- RS512 -->
|
||
|
<td>✔</td><!-- ES256 -->
|
||
|
<td>✔</td><!-- ES384 -->
|
||
|
<td>✔</td><!-- ES512 -->
|
||
|
<td>✔</td><!-- PS256 -->
|
||
|
<td>✔</td><!-- PS384 -->
|
||
|
<td>✔</td><!-- PS512 -->
|
||
|
<td>✔</td><!-- none -->
|
||
|
<td nowrap></td><!-- cryptlib -->
|
||
|
</tr>
|
||
|
|
||
|
</table>
|
||
|
|
||
|
Back to <a href="index.html">TOP</a>.
|
||
|
|
||
|
<!-- now editing -->
|
||
|
|
||
|
</section>
|
||
|
</div>
|
||
|
|
||
|
<!-- FOOTER -->
|
||
|
<div id="footer_wrap" class="outer">
|
||
|
<footer class="inner">
|
||
|
<p class="copyright">jsrsasign maintained by <a href="https://github.com/kjur">kjur</a></p>
|
||
|
<p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
|
||
|
<div align="center" style="color: white">
|
||
|
Copyright © 2010-2016 Kenji Urushima. All rights reserved.
|
||
|
</div>
|
||
|
</footer>
|
||
|
</div>
|
||
|
|
||
|
</body>
|
||
|
</html>
|