class Matter::Session::Pase::PaseResponder

Overview

PASE session establishment (responder side - device)

Defined in:

matter/session/pase/pase.cr

Constructors

Instance Method Summary

Constructor Detail

def self.from_passcode_verifier(passcode_verifier : Bytes, pbkdf_params : PbkdfParameters = PbkdfParameters.default, crypto : Crypto::CryptoBase = Crypto::StandardCrypto.new, context : Bytes = "CHIP PAKE V1 Commissioning".to_slice) : PaseResponder #

Build a responder that uses a pre-computed passcode verifier (w0 || L), as provided via AdministratorCommissioning OpenCommissioningWindow.

The passcode verifier is 97 bytes: w0 (32) + L (65).


[View source]
def self.new(pin_code : UInt32, pbkdf_params : PbkdfParameters = PbkdfParameters.default, crypto : Crypto::CryptoBase = Crypto::StandardCrypto.new, context : Bytes = "CHIP PAKE V1 Commissioning".to_slice) #

[View source]

Instance Method Detail

def context : Bytes #

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

[View source]
def crypto : Crypto::CryptoBase #

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

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

Derive session keys after successful PASE


[View source]
def generate_pake3 : Bytes #

Step 4: Generate confirmation value


[View source]
def initialize_spake #

Step 2: Initialize SPAKE2+ with w0 and L


[View source]
def p_b : Bytes | Nil #

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

[View source]
def pbkdf_params : PbkdfParameters #

[View source]
def pbkdf_params=(pbkdf_params : PbkdfParameters) #

[View source]
def pin_code : UInt32 #

[View source]
def pin_code=(pin_code : UInt32) #

[View source]
def process_pake1(p_a : Bytes) : Bytes #

Step 3: Process pA (initiator's public value) and generate pB


[View source]
def process_pbkdf_param_request(request : Bytes) : Bytes #

Step 1: Process PBKDF parameter request and return parameters


[View source]
def secret_and_verifiers : Crypto::Spake2p::SecretAndVerifiers | Nil #

[View source]
def secret_and_verifiers=(secret_and_verifiers : Crypto::Spake2p::SecretAndVerifiers | Nil) #

[View source]
def spake : Crypto::Spake2p | Nil #

[View source]
def spake=(spake : Crypto::Spake2p | Nil) #

[View source]
def w0_l : Crypto::Spake2p::W0L | Nil #

[View source]
def w0_l=(w0_l : Crypto::Spake2p::W0L | Nil) #

[View source]