package Ġcom . r 3 . cord a . lib . tokens . selection . memory . internal Ċ Ċ import Ġnet . cord a . v 5 . application . services . Identity Service Ċ import Ġnet . cord a . v 5 . application . services . crypto . Key Management Service Ċ import Ġjava . security . PublicKey Ċ import Ġjava . util .* Ċ Ċ sealed Ġclass ĠH older Ġ{ ĊĠĠĠ Ġdata Ġclass ĠKey Identity ( val Ġow ning Key : ĠPublicKey ) Ġ: ĠH older () Ġ// ĠJust Ġpublic Ġkey ĊĠĠĠ Ġclass ĠUn mapped Identity Ġ: ĠH older () Ġ// ĠFor Ġall Ġkeys Ġthat Ġare Ġun mapped ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġ=== Ġother ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSystem . identity HashCode ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠM apped Identity ( val Ġuuid : ĠUUID ) Ġ: ĠH older () Ġ// ĠAll Ġkeys Ġregister Ġto Ġthis Ġuuid ĊĠĠĠ Ġclass ĠToken Only Ġ: ĠH older () Ġ// ĠThis Ġis Ġfor Ġthe Ġcase Ġwhere Ġwe Ġuse Ġtoken Ġclass Ġand Ġtoken Ġidentifier Ġonly ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Ġ=== Ġother ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSystem . identity HashCode ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom UUID ( uuid : ĠUUID ?): ĠH older Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( uuid Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM apped Identity ( uuid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUn mapped Identity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġlookup External Id From Key ( own ing Key : ĠPublicKey , Ġidentity Service : ĠIdentity Service , Ġkey Management Service : ĠKey Management Service ): ĠH older Ġ{ ĊĠĠĠ Ġval Ġuuid Ġ= Ġidentity Service . external Id For PublicKey ( own ing Key ) ĊĠĠĠ Ġreturn Ġif Ġ( uuid Ġ!= Ġnull Ġ|| Ġis Key Part Of Node Key Pairs ( own ing Key , Ġkey Management Service ) Ġ|| Ġis Key Identity Key ( own ing Key , Ġidentity Service )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigning Entity Ġ= ĠH older . from UUID ( uuid ) ĊĠĠĠĠĠĠĠ Ġsigning Entity ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠH older . Un mapped Identity () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠEst ablish Ġwhether Ġa Ġpublic Ġkey Ġis Ġone Ġof Ġthe Ġnode 's Ġidentity Ġkeys , Ġby Ġlooking Ġin Ġthe Ġnode 's Ġidentity Ġdatabase Ġtable . Ċ Ġ*/ Ċ private Ġfun Ġis Key Identity Key ( key : ĠPublicKey , Ġidentity Service : ĠIdentity Service ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġparty Ġ= Ġidentity Service . name From Key ( key )?. let Ġ{ Ġidentity Service . party FromName ( it ) Ġ} ĊĠĠĠ Ġreturn Ġparty ?. own ing Key Ġ== Ġkey Ċ } Ċ Ċ /** Ċ Ġ* ĠCheck Ġto Ġsee Ġif Ġthe Ġkey Ġbelongs Ġto Ġone Ġof Ġthe Ġkey Ġpairs Ġin Ġthe Ġnode _ our _ key _ pairs Ġtable . ĠThese Ġkeys Ġmay Ġre late Ġto Ġconf idential Ċ Ġ* Ġident ities . Ċ Ġ*/ Ċ private Ġfun Ġis Key Part Of Node Key Pairs ( key : ĠPublicKey , Ġkey Management Service : ĠKey Management Service ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġkey Management Service . filter My Keys ( listOf ( key )). toList (). isNotEmpty () Ċ } Ċ