I'm using java code to generate the JWE token using nimbus jar file but I'm unable to generate expected header JWE token, could you guys please help me here to generate the expected token.
static String PUBLIC_KEY ="askjdbaskjbdjkasbkjdbaskjbdasjkbdkjsabdjkaskjdbaskjdbaskjbd";
public static void main(){
JSONObject obj = new JSONObject();
obj.put("typ", "JWT");
obj.put("cty", "JWT");
obj.put("enc", "A128CBC-HS256");
obj.put("alg", "RSA-OAEP");
// JWEHeader head = (JWEHeader) Header.parse(JSON);
JWEHeader header = JWEHeader.parse(obj);
System.out.println(header.getContentType());
JWEObject jwe = new JWEObject(header,new Payload("Hello, world!"));
EncryptionMethod enc = EncryptionMethod.A128CBC_HS256;
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(enc.cekBitLength());
SecretKey cek = keyGenerator.generateKey();
jwe.encrypt(new RSAEncrypter(getPublicKey(PUBLIC_KEY),cek));
String jweString = jwe.serialize();
System.out.println(jweString);
}
While I'm generating the token I'm getting token like this:
eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ.ITv2i07ctBtWR8T6D63yyHE7QXIw5paeYpLYYGjN2wx9Pq5IBiYxWJBNoynZyCSC-MSFiTl55EOs1mB1qCjz0z2f25DFsnDocHJ7xNfmL5_slRCpdJX-InTcVm4NSnU2iVxaxAP5ODFrlJIgLCqICMq0MaAT8wSXAkaoVJx6MH9MRmhJzsdxCvoZaj5lu83HSL_FEveVvXt4Bk3Zq9DipVPlcbog5t1I8We8tscMW6QsOM47xxIQxmQscHOkufFkMCQOUi-LwFu4k7f6vIcASc3jbJ9VwGCPehIef0PjwQPxiO7W8tmKjcIeAF6ytYUC2nEPUwpsMZVNIaGcNPSU-w.22YugdfNWVlHWJS3OR8aiQ.S1anurm9Dim2-lV5QbNvAA.Dvfn31gFhqKbkoU3ZVGNXQ
but header is generating like this, but I don't want this type of header in the JWE Token:
eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ
I want to generate a header like this using the above java code:
eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ
Could you guys please help me here to generate header like above one.
Thanks.