class
Matter::Session::Case::CaseInitiator
- Matter::Session::Case::CaseInitiator
- Reference
- Object
Overview
CASE session establishment (initiator side - controller/commissioner)
Defined in:
matter/session/case/case.crConstructors
Instance Method Summary
- #crypto : Crypto::CryptoBase
- #crypto=(crypto : Crypto::CryptoBase)
-
#derive_session_keys : NamedTuple(encryption: Bytes, decryption: Bytes)
Derive session keys after successful CASE
- #ephemeral_key : Crypto::Key | Nil
- #ephemeral_key=(ephemeral_key : Crypto::Key | Nil)
- #fabric_id : UInt64
- #fabric_id=(fabric_id : UInt64)
-
#generate_sigma1 : NamedTuple(ephemeral_public_key: Bytes, random: Bytes, session_id: UInt16)
Step 1: Generate ephemeral key and create Sigma1 message
- #node_id : UInt64
- #node_id=(node_id : UInt64)
- #operational_cert : Bytes
- #operational_cert=(operational_cert : Bytes)
- #operational_key : Crypto::Key
- #operational_key=(operational_key : Crypto::Key)
- #peer_cert : Bytes | Nil
- #peer_cert=(peer_cert : Bytes | Nil)
-
#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
-
#verify_sigma3(signature : Bytes) : Bool
Verify Sigma3 confirmation
Constructor Detail
def self.new(operational_cert : Bytes, operational_key : Crypto::Key, fabric_id : UInt64, node_id : UInt64, crypto : Crypto::CryptoBase = Crypto::StandardCrypto.new)
#
Instance Method Detail
def derive_session_keys : NamedTuple(encryption: Bytes, decryption: Bytes)
#
Derive session keys after successful CASE
def generate_sigma1 : NamedTuple(ephemeral_public_key: Bytes, random: Bytes, session_id: UInt16)
#
Step 1: Generate ephemeral key and create Sigma1 message
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