class

Matter::Session::Case::CaseInitiator

Inherits Reference < Object

CASE session establishment (initiator side - controller/commissioner)

Constants

Log = ::Log.for("matter.session.case.initiator")

Constructors

new(operational_cert : Bytes, operational_key : Crypto::Key, fabric_id : UInt64, node_id : UInt64, crypto : Crypto::CryptoBase = Crypto::StandardCrypto.new)
Source

Instance methods

crypto
Source
crypto=(crypto : Crypto::CryptoBase)
Source
derive_session_keys

Derive session keys after successful CASE

Source
ephemeral_key
Source
ephemeral_key=(ephemeral_key : Crypto::Key | Nil)
Source
fabric_id
Source
fabric_id=(fabric_id : UInt64)
Source
generate_sigma1

Step 1: Generate ephemeral key and create Sigma1 message

Source
node_id
Source
node_id=(node_id : UInt64)
Source
operational_cert
Source
operational_cert=(operational_cert : Bytes)
Source
operational_key
Source
operational_key=(operational_key : Crypto::Key)
Source
peer_cert
Source
peer_cert=(peer_cert : Bytes | Nil)
Source
peer_ephemeral_key
Source
peer_ephemeral_key=(peer_ephemeral_key : Bytes | Nil)
Source
process_sigma2(peer_ephemeral_public_key : Bytes, peer_random : Bytes, peer_encrypted_cert : Bytes, peer_session_id : UInt16) : NamedTuple(encrypted_cert: Bytes, signature: Bytes)

Step 2: Process Sigma2 response and generate Sigma3

Source
shared_secret
Source
shared_secret=(shared_secret : Bytes | Nil)
Source
validate_certificate_chain(trusted_roots : Array(Bytes | OpenSSL::X509::Certificate), intermediate_certs : Array(Bytes | OpenSSL::X509::Certificate) | Nil = nil) : Bool

Validate peer certificate chain against trusted roots

@param trusted_roots Array of trusted root certificates (DER or Certificate objects) @param intermediate_certs Optional array of intermediate certificates @return true if chain is valid, false otherwise

Source
verify_sigma3(signature : Bytes, transcript : Bytes | Nil = nil) : Bool

Verify Sigma3 confirmation

Source