Top Description Inners Fields Constructors Methods
org.keycloak.sdjwt

public Class SdJwt

extends Object
Class Inheritance
Imports
java.util.ArrayList, .Collections, .List, .Map, .Optional, java.util.stream.Collectors, .IntStream, org.keycloak.crypto.SignatureSignerContext, org.keycloak.sdjwt.vp.KeyBindingJWT, com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.node.ArrayNode, .JsonNodeType, .ObjectNode

Main entry class for selective disclosure jwt (SD-JWT).
Author
Francis Pouatcha

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
private final List<SdJwtClaim>
public static final String
private final List<String>
private final IssuerSignedJWT
private Optional<String>

Constructor Summary

AccessConstructor and Description
private
SdJwt(DisclosureSpec disclosureSpec, JsonNode claimSet, List<SdJwt> nesteSdJwts, Optional<KeyBindingJWT> keyBindingJWT, SignatureSignerContext signer)

Method Summary

Modifier and TypeMethod and Description
public JsonNode
asNestedPayload()

Prepare to a nested payload to this SD-JWT.

public static SdJwt.Builder
private SdJwtClaim
createArrayDisclosure(String claimName, JsonNode claimValue, Map<Integer, DisclosureSpec.DisclosureData> undisclosedArrayElts, Map<Integer, DisclosureSpec.DisclosureData> decoyArrayElts)

private SdJwtClaim
createArrayOrVisibleClaim(String claimName, JsonNode claimValue, DisclosureSpec disclosureSpec)

private SdJwtClaim
createClaim(String claimName, JsonNode claimValue, DisclosureSpec disclosureSpec)

private List<DecoyClaim>
private SdJwtClaim
createUndisclosedClaim(String claimName, JsonNode claimValue, SdJwtSalt salt)

public List<String>
private static List<String>
public IssuerSignedJWT
private void
public String
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
private ArrayNode
validateArrayNode(String claimName, JsonNode claimValue)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

claimsback to summary
private final List<SdJwtClaim> claims
DELIMITERback to summary
public static final String DELIMITER
disclosuresback to summary
private final List<String> disclosures
issuerSignedJWTback to summary
private final IssuerSignedJWT issuerSignedJWT
sdJwtStringback to summary
private Optional<String> sdJwtString

Constructor Detail

SdJwtback to summary
private SdJwt(DisclosureSpec disclosureSpec, JsonNode claimSet, List<SdJwt> nesteSdJwts, Optional<KeyBindingJWT> keyBindingJWT, SignatureSignerContext signer)

Method Detail

asNestedPayloadback to summary
public JsonNode asNestedPayload()

Prepare to a nested payload to this SD-JWT. droping the algo claim.

builderback to summary
public static SdJwt.Builder builder()
createArrayDisclosureback to summary
private SdJwtClaim createArrayDisclosure(String claimName, JsonNode claimValue, Map<Integer, DisclosureSpec.DisclosureData> undisclosedArrayElts, Map<Integer, DisclosureSpec.DisclosureData> decoyArrayElts)
createArrayOrVisibleClaimback to summary
private SdJwtClaim createArrayOrVisibleClaim(String claimName, JsonNode claimValue, DisclosureSpec disclosureSpec)
createClaimback to summary
private SdJwtClaim createClaim(String claimName, JsonNode claimValue, DisclosureSpec disclosureSpec)
createdDecoyClaimsback to summary
private List<DecoyClaim> createdDecoyClaims(DisclosureSpec disclosureSpec)
createUndisclosedClaimback to summary
private SdJwtClaim createUndisclosedClaim(String claimName, JsonNode claimValue, SdJwtSalt salt)
getDisclosuresback to summary
public List<String> getDisclosures()
getDisclosureStringsback to summary
private static List<String> getDisclosureStrings(List<SdJwtClaim> claims)
getIssuerSignedJWTback to summary
public IssuerSignedJWT getIssuerSignedJWT()
processArrayElementback to summary
private void processArrayElement(ArrayDisclosure.Builder builder, JsonNode elementValue, DisclosureSpec.DisclosureData disclosureData)
toSdJwtStringback to summary
public String toSdJwtString()
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
validateArrayNodeback to summary
private ArrayNode validateArrayNode(String claimName, JsonNode claimValue)
org.keycloak.sdjwt back to summary

public Class SdJwt.Builder

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private JsonNode
private DisclosureSpec
private Optional<KeyBindingJWT>
private final List<SdJwt>
private SignatureSignerContext

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public SdJwt
public SdJwt.Builder
public SdJwt.Builder
public SdJwt.Builder
public SdJwt.Builder
withNestedSdJwt(SdJwt nestedSdJwt)

public SdJwt.Builder
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

claimSetback to summary
private JsonNode claimSet
disclosureSpecback to summary
private DisclosureSpec disclosureSpec
keyBindingJWTback to summary
private Optional<KeyBindingJWT> keyBindingJWT
nestedSdJwtsback to summary
private final List<SdJwt> nestedSdJwts
signerback to summary
private SignatureSignerContext signer

Constructor Detail

Builderback to summary
public Builder()

Method Detail

buildback to summary
public SdJwt build()
withClaimSetback to summary
public SdJwt.Builder withClaimSet(JsonNode claimSet)
withDisclosureSpecback to summary
public SdJwt.Builder withDisclosureSpec(DisclosureSpec disclosureSpec)
withKeyBindingJWTback to summary
public SdJwt.Builder withKeyBindingJWT(KeyBindingJWT keyBindingJWT)
withNestedSdJwtback to summary
public SdJwt.Builder withNestedSdJwt(SdJwt nestedSdJwt)
withSignerback to summary
public SdJwt.Builder withSigner(SignatureSignerContext signer)