329 String encodedJwt = null;
332 JweEncrypterImpl jweEncrypter;
341 String encodedHeader = Base64Util.base64urlencode(header.getBytes(Util.UTF8_STRING_ENCODING));
344 String encodedClaims = Base64Util.base64urlencode(claims.getBytes(Util.UTF8_STRING_ENCODING));
347 SecureRandom random =
new SecureRandom();
348 random.nextBytes(contentMasterKey);
349 String encodedEncryptedKey = jweEncrypter.generateEncryptedKey(contentMasterKey);
352 random.nextBytes(initializationVector);
353 String encodedInitializationVector = Base64Util.base64urlencode(initializationVector);
355 String additionalAuthenticatedData = encodedHeader +
"." 356 + encodedEncryptedKey +
"." 357 + encodedInitializationVector;
359 Pair<String, String> result = jweEncrypter.generateCipherTextAndIntegrityValue(contentMasterKey, initializationVector,
360 additionalAuthenticatedData.getBytes(Util.UTF8_STRING_ENCODING),
361 encodedClaims.getBytes(Util.UTF8_STRING_ENCODING));
362 String encodedCipherText = result.getFirst();
363 String encodedIntegrityValue = result.getSecond();
365 encodedJwt = encodedHeader +
"." 366 + encodedEncryptedKey +
"." 367 + encodedInitializationVector +
"." 368 + encodedCipherText +
"." 369 + encodedIntegrityValue;
372 throw new Exception(
"The Crypto Provider cannot be null.");
377 String headerString = headerJsonObject.toString();
378 String payloadString = payloadJsonObject.toString();
379 String encodedHeader = Base64Util.base64urlencode(headerString.getBytes(Util.UTF8_STRING_ENCODING));
380 String encodedPayload = Base64Util.base64urlencode(payloadString.getBytes(Util.UTF8_STRING_ENCODING));
381 String signingInput = encodedHeader +
"." + encodedPayload;
384 encodedJwt = encodedHeader +
"." + encodedPayload +
"." + encodedSignature;
KeyEncryptionAlgorithm keyEncryptionAlgorithm
Definition: JwtAuthorizationRequest.java:47
abstract String sign(String signingInput, String keyId, String sharedSecret, SignatureAlgorithm signatureAlgorithm)
SignatureAlgorithm signatureAlgorithm
Definition: JwtAuthorizationRequest.java:46
String keyId
Definition: JwtAuthorizationRequest.java:49
int getInitVectorLength()
Definition: BlockEncryptionAlgorithm.java:75
PublicKey getPublicKey(String alias, JSONObject jwks)
Definition: AbstractCryptoProvider.java:133
String sharedKey
Definition: JwtAuthorizationRequest.java:73
JSONObject payloadToJSONObject()
Definition: JwtAuthorizationRequest.java:420
int getCmkLength()
Definition: BlockEncryptionAlgorithm.java:71
BlockEncryptionAlgorithm blockEncryptionAlgorithm
Definition: JwtAuthorizationRequest.java:48
JSONObject headerToJSONObject()
Definition: JwtAuthorizationRequest.java:405
AbstractCryptoProvider cryptoProvider
Definition: JwtAuthorizationRequest.java:74