[jose] Updated table of platform support for JWA Algorithms

Mike Jones <Michael.Jones@microsoft.com> Wed, 25 July 2012 19:23 UTC

Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB21421F8732 for <jose@ietfa.amsl.com>; Wed, 25 Jul 2012 12:23:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.777
X-Spam-Level:
X-Spam-Status: No, score=-3.777 tagged_above=-999 required=5 tests=[AWL=-0.179, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0eXub0p485RY for <jose@ietfa.amsl.com>; Wed, 25 Jul 2012 12:23:23 -0700 (PDT)
Received: from am1outboundpool.messaging.microsoft.com (am1ehsobe006.messaging.microsoft.com [213.199.154.209]) by ietfa.amsl.com (Postfix) with ESMTP id CBFCA21F8717 for <jose@ietf.org>; Wed, 25 Jul 2012 12:23:21 -0700 (PDT)
Received: from mail81-am1-R.bigfish.com (10.3.201.251) by AM1EHSOBE006.bigfish.com (10.3.204.26) with Microsoft SMTP Server id 14.1.225.23; Wed, 25 Jul 2012 19:23:19 +0000
Received: from mail81-am1 (localhost [127.0.0.1]) by mail81-am1-R.bigfish.com (Postfix) with ESMTP id E8D5660155 for <jose@ietf.org>; Wed, 25 Jul 2012 19:23:19 +0000 (UTC)
X-Forefront-Antispam-Report: CIP:131.107.125.8; KIP:(null); UIP:(null); IPV:NLI; H:TK5EX14HUBC105.redmond.corp.microsoft.com; RD:none; EFVD:NLI
X-SpamScore: 0
X-BigFish: VS0(zzc85fhzz1202hzz8275bh8275dhz2fh2a8h668h839hd25hf0ah107ah34h)
Received-SPF: pass (mail81-am1: domain of microsoft.com designates 131.107.125.8 as permitted sender) client-ip=131.107.125.8; envelope-from=Michael.Jones@microsoft.com; helo=TK5EX14HUBC105.redmond.corp.microsoft.com ; icrosoft.com ;
Received: from mail81-am1 (localhost.localdomain [127.0.0.1]) by mail81-am1 (MessageSwitch) id 1343244196674719_2907; Wed, 25 Jul 2012 19:23:16 +0000 (UTC)
Received: from AM1EHSMHS002.bigfish.com (unknown [10.3.201.234]) by mail81-am1.bigfish.com (Postfix) with ESMTP id 9ACE440047 for <jose@ietf.org>; Wed, 25 Jul 2012 19:23:16 +0000 (UTC)
Received: from TK5EX14HUBC105.redmond.corp.microsoft.com (131.107.125.8) by AM1EHSMHS002.bigfish.com (10.3.207.102) with Microsoft SMTP Server (TLS) id 14.1.225.23; Wed, 25 Jul 2012 19:23:13 +0000
Received: from TK5EX14MBXC285.redmond.corp.microsoft.com ([169.254.3.222]) by TK5EX14HUBC105.redmond.corp.microsoft.com ([157.54.80.48]) with mapi id 14.02.0309.003; Wed, 25 Jul 2012 19:23:03 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: "jose@ietf.org" <jose@ietf.org>
Thread-Topic: Updated table of platform support for JWA Algorithms
Thread-Index: Ac1qmuBm81ze+PpdQ/OOwLTf7CTxHA==
Date: Wed, 25 Jul 2012 19:23:02 +0000
Message-ID: <4E1F6AAD24975D4BA5B168042967394366743D32@TK5EX14MBXC285.redmond.corp.microsoft.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.35]
Content-Type: multipart/mixed; boundary="_004_4E1F6AAD24975D4BA5B168042967394366743D32TK5EX14MBXC285r_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
Subject: [jose] Updated table of platform support for JWA Algorithms
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>, <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>, <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jul 2012 19:23:26 -0000

As discussed at the W3C WebCrypto working group meeting today.

                                                            -- Mike

Usage

Param Name

Param Val

Description

.NET

OSX

iOS

Java JCA

BouncyCastle

Android

PHP

PHPSecLib

Python

M2Crypto

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

YES

JWS/JWE

alg/int

HS384

HMAC w/ SHA-384 hash

YES

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

YES

JWS

alg

RS256

RSA w/ SHA-256 hash

YES

YES

YES

YES

YES

YES

NO

YES

NO

YES

YES

YES

YES

YES

JWS

alg

RS384

RSA w/ SHA-384 hash

YES

YES

YES

YES

YES

YES

NO

YES

NO

YES

YES

YES

YES

YES

JWS

alg

RS512

RSA w/ SHA-512 hash

YES

YES

YES

YES

YES

YES

NO

YES

NO

YES

YES

YES

YES

YES

JWS

alg

ES256

ECDSA w/ P-256 curve and SHA-256 hash

YES

YES

NO

YES?

YES

YES

NO

NO

NO

YES

NO



YES

YES

JWS

alg

ES384

ECDSA w/ P-384 curve and SHA-384 hash

YES

YES

NO

YES?

YES

YES

NO

NO

NO

YES

NO



YES

YES

JWS

alg

ES512

ECDSA w/ P-521 curve and SHA-512 hash

YES

YES

NO

YES?

YES

YES

NO

NO

NO

YES

NO



YES

YES

JWE

alg

RSA1_5

RSAES-PKCS1-V1_5

YES

YES

YES

YES

YES

YES

YES

YES

NO

YES

YES



YES

YES

JWE

alg

RSA-OAEP

RSAES OAEP

YES

YES?

YES

YES

YES

YES

NO

YES

NO

YES

YES



YES

YES

JWE

alg

ECDH-ES

Elliptic Curve Diffie-Hellman Ephemeral Static

NO*

NO?

NO

YES*

YES*

YES*

NO

NO

NO

YES?

NO



YES

YES

JWE

alg

A128KW

AES Key Wrap w/ 128 bit key

NO

YES

YES



YES

YES

NO

NO

NO

YES

YES



YES?

YES?

JWE

alg

A256KW

AES Key Wrap w/ 256 bit key

NO

YES

YES



YES

YES

NO

NO

NO

YES

YES



YES?

YES?

JWE

enc

A128CBC

AES CBC w/ 128 bit key

YES*

YES



YES*

YES*

YES*

YES*

YES*

NO

YES*

YES*



YES*

YES*

JWE

enc

A256CBC

AES CBC w/ 256 bit key

YES*

YES



YES*

YES*

YES*

YES*

YES*

NO

YES*

YES*



YES*

YES*

JWE

enc

A128GCM

AES GCM w/ 128 bit key

NO

NO?

NO

NO

YES

YES

NO

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?

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

YES* - Supported but other non-supported code required (Concat KDF)

Android uses BouncyCastle

NO - Not supported in library/platform

PHPSecLib is a crypto lib for PHP

NO* - Not supported in the specified configuration (w/ Concat KDF)

M2Crypto is a crypto lib for Python

(blank) - Unknown

PyCrypto is a crypto lib for Python

? - Answer is a first impression but requires more research


PHP version 5.2

PHPSecLib version 0.3.0

PyCrypto version 2.6

Ruby 1.9.3 with ruby-openssl

Java 7

OS X 10.6 (Snow Leopard)