- From: Mike Jones <Michael.Jones@microsoft.com>
- Date: Tue, 24 Jul 2012 17:47:38 +0000
- To: "public-webcrypto@w3.org" <public-webcrypto@w3.org>
- Message-ID: <4E1F6AAD24975D4BA5B1680429673943667427A5@TK5EX14MBXC285.redmond.corp.microsoft.>
From: Mike Jones
Sent: Monday, July 23, 2012 9:50 PM
To: jose@ietf.org
Subject: Platform support for JWA algorithms
I've been doing some investigation into the state of support for the JWA algorithms in common Web development platforms. The attached table is the data gathered to date.
I'll be leading a discussion based upon this data during our session at IETF 84. If any of you have more data that I should add, or believe that there are additional columns or rows we should track, please let me know.
Thanks to Roland Hedberg, Axel Nennker, Emmanuel Raviart, Nov Matake, Justin Richer, and Edmund Jay for the data they provided, based upon their implementation experiences.
-- Mike
Usage
Param Name
Param Val
Description
.NET
OSX
iOS
Java JCA
BouncyCastle
Android
PHP
PHPSecLib
Python
MCrypto2
PyCrypto
Ruby
OpenSSL
node.js
JWS/JWE
alg/int
HS256
HMAC w/ SHA-256 hash
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWS/JWE
alg/int
HS384
HMAC w/ SHA-384 hash
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWS/JWE
alg/int
HS512
HMAC w/ SHA-512 hash
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWS
alg
RS256
RSA w/ SHA-256 hash
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
JWS
alg
RS384
RSA w/ SHA-384 hash
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
JWS
alg
RS512
RSA w/ SHA-512 hash
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
JWS
alg
ES256
ECDSA w/ P-256 curve and SHA-256 hash
YES
NO*
NO
NO*
YES
YES
NO
NO
YES
NO
YES
YES
JWS
alg
ES384
ECDSA w/ P-384 curve and SHA-384 hash
YES
NO*
NO
NO*
YES
YES
NO
NO
YES
NO
YES
YES
JWS
alg
ES512
ECDSA w/ P-521 curve and SHA-512 hash
YES
NO*
NO
NO*
YES
YES
NO
NO
YES
NO
YES
YES
JWE
alg
RSA1_5
RSAES-PKCS1-V1_5
YES
YES*
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWE
alg
RSA-OAEP
RSAES OAEP
YES
YES*
YES
NO
YES
YES
NO
YES
YES
YES
YES
YES
JWE
alg
ECDH-ES
Elliptic Curve Diffie-Hellman Ephemeral Static
NO*
NO
NO*
YES*
YES*
NO
NO
YES*
NO
YES
YES
JWE
alg
A128KW
AES Key Wrap w/ 128 bit key
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES*
YES*
JWE
alg
A256KW
AES Key Wrap w/ 256 bit key
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES*
YES*
JWE
enc
A128CBC
AES CBC w/ 128 bit key
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWE
enc
A256CBC
AES CBC w/ 256 bit key
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
JWE
enc
A128GCM
AES GCM w/ 128 bit key
NO
NO*
NO
NO
YES
YES
NO
NO
NO*
NO
YES
YES
JWE
enc
A256GCM
AES GCM w/ 256 bit key
NO
NO*
NO
NO
YES
YES
NO
NO
NO*
NO
YES
YES
JWE
kdf
CS256
Concat Key Distribution Function (KDF)
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
JWE
kdf
CS384
Concat Key Distribution Function (KDF)
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
JWE
kdf
CS512
Concat Key Distribution Function (KDF)
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES - Support built into library/platform
BouncyCastle is a crypto lib for Java
NO - Not supported in library/platform
Android uses BouncyCastle
(blank) - Unknown
PHPSecLib is a crypto lib for PHP
* - Answer is a first impression but requires more research
MCrypto2 is a crypto lib for Python
PyCrypto is a crypto lib for Python
PHP version 5.2
PHPSecLib version 0.3.0
PyCrypto version 2.6
Attachments
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet attachment: Support for JWA Crypto Algorithms.xlsx
Received on Tuesday, 24 July 2012 17:48:22 UTC