IdentityService

An identity service maintains a directory of parties by their associated distinguished name/public keys and thus supports lookup of a party given its key, or name. The service also manages the certificates linking confidential identities back to the well known identity.

Well known identities in Corda are the public identity of a party, registered with the network map directory, whereas confidential identities are distributed only on a need to know basis (typically between parties in a transaction being built). See NetworkMapCache for retrieving well known identities from the network map.

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
abstract val caCertStore: CertStore
Link copied to clipboard
abstract val trustAnchor: TrustAnchor
Link copied to clipboard

Functions

Link copied to clipboard
open fun assertOwnership(party: Party, anonymousParty: AnonymousParty)

Asserts that an anonymous party maps to the given full party, by looking up the certificate chain associated with the anonymous party and resolving it back to the given full party.

Link copied to clipboard

Resolves a public key to the well known identity PartyAndCertificate instance which is owned by the key.

Link copied to clipboard
abstract fun externalIdForPublicKey(publicKey: PublicKey): UUID?

This method allows lookups of PublicKeys to an associated "external ID" / UUID. Providing a PublicKey that is unknown by the node or is not mapped to an external ID will return null. Otherwise, if the PublicKey has been mapped to an external ID, then the UUID for that external ID will be returned. The method looks up keys generated by the node as well as keys generated on other nodes and registered with the IdentityService.

Link copied to clipboard

Get all identities known to the service. This is expensive, and partyFromKey or partyFromX500Name should be used in preference where possible.

Link copied to clipboard
abstract fun partiesFromName(query: String, exactMatch: Boolean): Set<Party>

Returns a list of candidate matches for a given string, with optional fuzzy(ish) matching. Fuzzy matching may get smarter with time e.g. to correct spelling errors, so you should not hard-code indexes into the results but rather show them via a user interface and let the user pick the one they wanted.

Link copied to clipboard
abstract fun partyFromKey(key: PublicKey): Party?

Converts an owning PublicKey to the X500Name extended Party object if the Party has been previously registered with the IdentityService either as a well known network map identity, or as a part of flows creating and exchanging the identity.

Link copied to clipboard
abstract fun publicKeysForExternalId(externalId: UUID): Iterable<PublicKey>

This method returns all the PublicKeys which have been mapped to the supplied external ID.

Link copied to clipboard
abstract fun registerKey(publicKey: PublicKey, party: Party, externalId: UUID? = null)

Registers a mapping in the database between the provided PublicKey and Party if one does not already exist. If an entry exists for the supplied PublicKey but the associated Party does not match the one supplied to the method then a warning will be logged and the operation will not be carried out as a key can only ever be registered to one Party.

Link copied to clipboard

Resolve the well known identity of a party. Throws an exception if the party cannot be identified. If the party passed in is already a well known identity (i.e. a Party) this returns it as-is.

Link copied to clipboard

Verify and then store an identity.

Link copied to clipboard

Resolves a (optionally) confidential identity to the corresponding well known identity Party. Convenience method which unwraps the Party from the PartyAndReference and then resolves the well known identity as normal. It transparently handles returning the well known identity back if a well known identity is passed in.

Resolves a (optionally) confidential identity to the corresponding well known identity Party. It transparently handles returning the well known identity back if a well known identity is passed in.

Link copied to clipboard

Resolves a party name to the well known identity Party instance for this name. Where possible well known identity lookup from name should be done from the network map (via NetworkMapCache) instead, as it is the authoritative source of well known identities.