jsoncrypto


Implement the JSON WebToken Encryption and Signing Standards

Implement

http://tools.ietf.org/html/draft-ietf-jose-json-web-encryption

http://tools.ietf.org/id/draft-ietf-jose-json-web-algorithms

http://tools.ietf.org/html/draft-ietf-jose-json-web-signature

Example

RSA OAEP with AES 128 bit GCM

``` JSONObject header = new JSONObject(); JcEnc_A128GCM enc = new JcEnc_A128GCM(header); JweRSA_OAEP jwe = new JweRSA_OAEP(enc);

String iss = "https://openid.example.com/issuer";
String user_id = "acr:0123456890123456789;ncc=26201";
String aud = "https://api.service.com/print";
TimeZone tz = TimeZone.getTimeZone("GMT+00:00");
Calendar cal = Calendar.getInstance(tz, Locale.US);
long exp = cal.getTimeInMillis() * 1000;
IDToken idToken = new IDToken(iss, user_id, aud, exp);
String jweStr = jwe.encrypt(idToken.toString().getBytes(), rsaPublicKey);

JweRSA_OAEP receiverJwe = new JweRSA_OAEP(jweStr);
byte[] receiverContentBytes = receiverJwe.decrypt(rsaPrivKey);
String receiverText = new String(receiverContentBytes);
IDToken receiverIdToken = new IDToken(receiverText);

assertEquals(iss, receiverIdToken.getString("iss"));
assertEquals(user_id, receiverIdToken.getString("user_id"));
assertEquals(aud, receiverIdToken.getString("aud"));
assertEquals(exp, receiverIdToken.getLong("exp"));

```

For more examples look here: http://code.google.com/p/jsoncrypto/source/browse/#svn%2Ftrunk%2Ftestsrc%2Forg%2Fjsoncrypto

Project Information

The project was created on Jul 29, 2012.

Labels:
json Cryptography Web OpenID openidconnect