RpcAuthInspectorAssertion

class RpcAuthInspectorAssertion(val timeout: Duration = 10.minutes, val nonceChecker: suspend (clientId: String, nonce: ByteString, expiration: Instant) -> RpcNonceAndSession = RpcNonceAndSession::checkNonce, val clientLookup: suspend (clientId: String) -> DeviceAttestation? = Companion::getClientDeviceAttestation) : RpcAuthInspector

Implementation of RpcAuthInspector that requires each RPC call to be authorized with AssertionRpcAuth object signed by a secure device key (see DeviceAssertion). Authorization is only trusted by timeout duration. Nonce AssertionRpcAuth.nonce uniqueness is checked by nonceChecker and DeviceAttestation that is used to validate AssertionRpcAuth is looked up by the client id using clientLookup.

Constructors

Link copied to clipboard
constructor(timeout: Duration = 10.minutes, nonceChecker: suspend (clientId: String, nonce: ByteString, expiration: Instant) -> RpcNonceAndSession = RpcNonceAndSession::checkNonce, clientLookup: suspend (clientId: String) -> DeviceAttestation? = Companion::getClientDeviceAttestation)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
val clientLookup: suspend (clientId: String) -> DeviceAttestation?
Link copied to clipboard
val nonceChecker: suspend (clientId: String, nonce: ByteString, expiration: Instant) -> RpcNonceAndSession
Link copied to clipboard

Functions

Link copied to clipboard
open suspend override fun authCheck(target: String, method: String, payload: Bstr, authMessage: DataItem): RpcAuthContext

Checks RPC authorization.