package Ġio . arc block . vc Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġjava . util . HashMap Ċ Ċ interface ĠI Credential Subject Ġ{ ĊĠ Ġfun Ġjson Map (): ĠHashMap < String , ĠAny > Ċ } Ċ Ċ enum Ġclass ĠCredential Subject Type Ġ{ ĊĠ ĠE MAIL _ VER IF i ED { ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ" email Verified " ĊĠĠĠ Ġ} ĊĠ Ġ}, ĊĊĠ ĠRB AC _ VER IFI ED CRED ENTIAL Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ" RB AC Verified Credential " ĊĠĠĠ Ġ} ĊĠ Ġ}, ĊĊĠ ĠD ID _ CONNECT _ AUTHORIZATION _ VER IFI ED CRED ENTIAL Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ" DID Connect Authorization Verified Credential " ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊ Ċ } Ċ Ċ class ĠEmail Verified Credential ( var Ġid : ĠString , Ġvar Ġemail Verified Digest : ĠString ) Ġ: ĠI Credential Subject Ġ{ ĊĠ Ġconstructor () Ġ: Ġthis ("", Ġ"") ĊĊĠ Ġoverride Ġfun Ġjson Map (): ĠHashMap < String , ĠAny > Ġ{ ĊĠĠĠ Ġreturn Ġhash Map Of ( Credential Subject Type . EMAIL _ VER IF i ED . toString () Ġto Ġhash Map Of ( ĊĠĠĠĠĠ Ġ" email Digest " Ġto Ġemail Verified Digest , ĊĠĠĠĠĠ Ġ" method " Ġto Ġ" SHA 3 " ĊĠĠĠ Ġ)) ĊĠ Ġ} Ċ } Ċ Ċ class ĠRB AC Verified Credential ( var Ġid : ĠString Ġ= Ġ"", Ġvar Ġresource : ĠString Ġ= Ġ"", Ġval Ġscope : ĠMutable List < String > Ġ= Ġmutable ListOf ()) Ġ: ĠI Credential Subject Ġ{ ĊĊĠ Ġoverride Ġfun Ġjson Map (): ĠHashMap < String , ĠAny > Ġ{ ĊĠĠĠ Ġreturn Ġhash Map Of ( Credential Subject Type . RB AC _ VER IFI ED CRED ENTIAL . toString () Ġto Ġhash Map Of ( ĊĠĠĠĠĠ Ġ" resource " Ġto Ġresource , ĊĠĠĠĠĠ Ġ" scope " Ġto Ġscope ĊĠĠĠ Ġ)) ĊĠ Ġ} Ċ Ċ } Ċ Ċ class ĠD ID Connect Authorization Verified Credential ( var Ġissuer : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġops : ĠMutable List < String > Ġ= Ġmutable ListOf () Ċ ) Ġ: ĠI Credential Subject Ġ{ ĊĠ Ġoverride Ġfun Ġjson Map (): ĠHashMap < String , ĠAny > Ġ{ ĊĠĠĠ Ġreturn Ġhash Map Of ( Credential Subject Type . DID _ CONNECT _ AUTHORIZATION _ VER IFI ED CRED ENTIAL . toString () Ġto Ġhash Map Of ( ĊĠĠĠĠĠ Ġ" issuer " Ġto Ġissuer , ĊĠĠĠĠĠ Ġ" ops " Ġto Ġops ĊĠĠĠ Ġ)) ĊĠ Ġ} Ċ Ċ } Ċ