c

com.digitalasset.canton.topology.processing

IncomingTopologyTransactionAuthorizationValidatorX

class IncomingTopologyTransactionAuthorizationValidatorX extends NamedLogging with TransactionAuthorizationValidatorX

validate incoming topology transactions

NOT THREAD SAFE. Note that this class is not thread safe

we check three things: (1) are the signatures valid (2) are the signatures properly authorized

  1. load current set of authorized keys b. for each transaction, verify that the authorization keys are valid. a key is a valid authorization if there is a certificate chain that originates from the root certificate at the time when the transaction is added (one by one). c. if the transaction is a namespace or identifier delegation, update its impact on the authorization set this means that if we add or remove a namespace delegation, then we need to perform a cascading update that activates or deactivates states that depend on this delegation. (3) finally, what we compute as the "authorized graph" is then used to compute the derived table of "namespace delegations"
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IncomingTopologyTransactionAuthorizationValidatorX
  2. TransactionAuthorizationValidatorX
  3. NamedLogging
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new IncomingTopologyTransactionAuthorizationValidatorX(pureCrypto: CryptoPureApi, store: TopologyStoreX[TopologyStoreId], domainId: Option[DomainId], loggerFactory: NamedLoggerFactory)(implicit ec: ExecutionContext)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  9. def getAuthorizationCheckForNamespace(namespace: Namespace): AuthorizationCheckX
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  10. def getAuthorizationGraphForNamespace(namespace: Namespace): AuthorizationGraphX
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. def getIdentifierDelegationsForUid(uid: UniqueIdentifier): Set[AuthorizedIdentifierDelegationX]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. val identifierDelegationCache: TrieMap[UniqueIdentifier, Set[AuthorizedIdentifierDelegationX]]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  15. def isCurrentlyAuthorized(toValidate: GenericSignedTopologyTransactionX, inStore: Option[GenericSignedTopologyTransactionX]): Either[TopologyTransactionRejection, RequiredAuthXAuthorizations]
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. def loadAuthorizationGraphs(timestamp: CantonTimestamp, namespaces: Set[Namespace])(implicit executionContext: ExecutionContext, traceContext: TraceContext): Future[Unit]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  18. def loadIdentifierDelegations(timestamp: CantonTimestamp, namespaces: Seq[Namespace], uids: Set[UniqueIdentifier])(implicit traceContext: TraceContext, executionContext: ExecutionContext): Future[Set[UniqueIdentifier]]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  19. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  20. val loggerFactory: NamedLoggerFactory
  21. implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  22. val namespaceCache: TrieMap[Namespace, AuthorizationGraphX]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. val pureCrypto: CryptoPureApi
  28. def reset(): Unit
  29. val store: TopologyStoreX[TopologyStoreId]
  30. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  31. def toString(): String
    Definition Classes
    AnyRef → Any
  32. val unionspaceCache: TrieMap[Namespace, (UnionspaceDefinitionX, UnionspaceAuthorizationGraphX)]
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  33. def updateIdentifierDelegationCache(uid: UniqueIdentifier, op: (Set[AuthorizedIdentifierDelegationX]) => Set[AuthorizedIdentifierDelegationX]): Unit
    Attributes
    protected
    Definition Classes
    TransactionAuthorizationValidatorX
  34. def validateAndUpdateHeadAuthState(timestamp: CantonTimestamp, transactionsToValidate: Seq[GenericSignedTopologyTransactionX], transactionsInStore: Map[MappingHash, GenericSignedTopologyTransactionX], expectFullAuthorization: Boolean)(implicit traceContext: TraceContext): Future[(UpdateAggregationX, Seq[GenericValidatedTopologyTransactionX])]

    Validates the provided topology transactions and applies the certificates to the auth state

    Validates the provided topology transactions and applies the certificates to the auth state

    When receiving topology transactions we have to evaluate them and continuously apply any update to the namespace delegations or identifier delegations to the "head state".

    And we use that "head state" to verify if the transactions are authorized or not.

  35. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  36. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  37. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from NamedLogging

Inherited from AnyRef

Inherited from Any

Ungrouped