
jsoncrypto
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.
- License: Apache License 2.0
- svn-based source control
Labels:
json
Cryptography
Web
OpenID
openidconnect