class Matter::Session::Case::CaseInitiator

Overview

CASE session establishment (initiator side - controller/commissioner)

Defined in:

matter/session/case/case.cr

Constructors

Instance Method Summary

Constructor Detail

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

[View source]

Instance Method Detail

def crypto : Crypto::CryptoBase #

[View source]
def crypto=(crypto : Crypto::CryptoBase) #

[View source]
def derive_session_keys : NamedTuple(encryption: Bytes, decryption: Bytes) #

Derive session keys after successful CASE


[View source]
def ephemeral_key : Crypto::Key | Nil #

[View source]
def ephemeral_key=(ephemeral_key : Crypto::Key | Nil) #

[View source]
def fabric_id : UInt64 #

[View source]
def fabric_id=(fabric_id : UInt64) #

[View source]
def generate_sigma1 : NamedTuple(ephemeral_public_key: Bytes, random: Bytes, session_id: UInt16) #

Step 1: Generate ephemeral key and create Sigma1 message


[View source]
def node_id : UInt64 #

[View source]
def node_id=(node_id : UInt64) #

[View source]
def operational_cert : Bytes #

[View source]
def operational_cert=(operational_cert : Bytes) #

[View source]
def operational_key : Crypto::Key #

[View source]
def operational_key=(operational_key : Crypto::Key) #

[View source]
def peer_cert : Bytes | Nil #

[View source]
def peer_cert=(peer_cert : Bytes | Nil) #

[View source]
def 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


[View source]
def verify_sigma3(signature : Bytes) : Bool #

Verify Sigma3 confirmation


[View source]