Class JwtFormat
- java.lang.Object
-
- com.google.crypto.tink.jwt.internal.JwtFormat
-
public final class JwtFormat extends java.lang.ObjectHelper functions to format JWT objects
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJwtFormat.PartsEncodes the parts of a JWT.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringcreateHeader(java.lang.String algorithm, java.util.Optional<java.lang.String> typeHeader, java.util.Optional<java.lang.String> kid)static java.lang.StringcreateSignedCompact(java.lang.String unsignedCompact, byte[] signature)static java.lang.StringcreateUnsignedCompact(java.lang.String algorithm, java.util.Optional<java.lang.String> kid, RawJwt rawJwt)static java.lang.StringdecodeHeader(java.lang.String headerStr)static java.lang.StringdecodePayload(java.lang.String payloadStr)static byte[]decodeSignature(java.lang.String signatureStr)static java.lang.StringencodePayload(java.lang.String jsonPayload)static java.lang.StringencodeSignature(byte[] signature)static java.util.Optional<java.lang.Integer>getKeyId(java.lang.String kid)static java.util.Optional<java.lang.String>getKid(int keyId, com.google.crypto.tink.proto.OutputPrefixType prefix)static java.lang.StringgetStringHeader(com.google.gson.JsonObject header, java.lang.String name)static java.util.Optional<java.lang.String>getTypeHeader(com.google.gson.JsonObject header)static booleanisValidUrlsafeBase64Char(char c)static JwtFormat.PartssplitSignedCompact(java.lang.String signedCompact)static byte[]strictUrlSafeDecode(java.lang.String encodedData)static voidvalidateASCII(java.lang.String data)static voidvalidateHeader(com.google.gson.JsonObject parsedHeader, java.lang.String algorithmFromKey, java.util.Optional<java.lang.String> kidFromKey, boolean allowKidAbsent)static voidvalidateHeader(java.lang.String expectedAlgorithm, java.util.Optional<java.lang.String> tinkKid, java.util.Optional<java.lang.String> customKid, com.google.gson.JsonObject parsedHeader)Validates the parsed header.static voidvalidateUtf8(byte[] data)
-
-
-
Method Detail
-
isValidUrlsafeBase64Char
public static boolean isValidUrlsafeBase64Char(char c)
-
validateUtf8
public static void validateUtf8(byte[] data) throws JwtInvalidException- Throws:
JwtInvalidException
-
strictUrlSafeDecode
public static byte[] strictUrlSafeDecode(java.lang.String encodedData) throws JwtInvalidException- Throws:
JwtInvalidException
-
createHeader
public static java.lang.String createHeader(java.lang.String algorithm, java.util.Optional<java.lang.String> typeHeader, java.util.Optional<java.lang.String> kid) throws java.security.InvalidAlgorithmParameterException- Throws:
java.security.InvalidAlgorithmParameterException
-
validateHeader
public static void validateHeader(com.google.gson.JsonObject parsedHeader, java.lang.String algorithmFromKey, java.util.Optional<java.lang.String> kidFromKey, boolean allowKidAbsent) throws java.security.GeneralSecurityException- Throws:
java.security.GeneralSecurityException
-
validateHeader
public static void validateHeader(java.lang.String expectedAlgorithm, java.util.Optional<java.lang.String> tinkKid, java.util.Optional<java.lang.String> customKid, com.google.gson.JsonObject parsedHeader) throws java.security.InvalidAlgorithmParameterException, JwtInvalidExceptionValidates the parsed header.tinkKid should only be set for keys with output prefix type TINK. customKid should only be set for keys with output prefix type RAW. They should not be set at the same time.
- Throws:
java.security.InvalidAlgorithmParameterExceptionJwtInvalidException
-
getTypeHeader
public static java.util.Optional<java.lang.String> getTypeHeader(com.google.gson.JsonObject header) throws JwtInvalidException- Throws:
JwtInvalidException
-
getStringHeader
public static java.lang.String getStringHeader(com.google.gson.JsonObject header, java.lang.String name) throws JwtInvalidException- Throws:
JwtInvalidException
-
decodeHeader
public static java.lang.String decodeHeader(java.lang.String headerStr) throws JwtInvalidException- Throws:
JwtInvalidException
-
encodePayload
public static java.lang.String encodePayload(java.lang.String jsonPayload)
-
decodePayload
public static java.lang.String decodePayload(java.lang.String payloadStr) throws JwtInvalidException- Throws:
JwtInvalidException
-
encodeSignature
public static java.lang.String encodeSignature(byte[] signature)
-
decodeSignature
public static byte[] decodeSignature(java.lang.String signatureStr) throws JwtInvalidException- Throws:
JwtInvalidException
-
getKid
public static java.util.Optional<java.lang.String> getKid(int keyId, com.google.crypto.tink.proto.OutputPrefixType prefix) throws JwtInvalidException- Throws:
JwtInvalidException
-
getKeyId
public static java.util.Optional<java.lang.Integer> getKeyId(java.lang.String kid)
-
splitSignedCompact
public static JwtFormat.Parts splitSignedCompact(java.lang.String signedCompact) throws JwtInvalidException
- Throws:
JwtInvalidException
-
createUnsignedCompact
public static java.lang.String createUnsignedCompact(java.lang.String algorithm, java.util.Optional<java.lang.String> kid, RawJwt rawJwt) throws java.security.InvalidAlgorithmParameterException, JwtInvalidException- Throws:
java.security.InvalidAlgorithmParameterExceptionJwtInvalidException
-
createSignedCompact
public static java.lang.String createSignedCompact(java.lang.String unsignedCompact, byte[] signature)
-
validateASCII
public static void validateASCII(java.lang.String data) throws JwtInvalidException- Throws:
JwtInvalidException
-
-