View Source Grizzly.ZWave.CommandClasses.Security2 (grizzly v8.6.5)

Security 2 (S2) Command Class

Definitions

  • CKDF - CMAC-based Key Derivation Function
  • MEI - Mutual Entropy Input
  • SPAN - Singlecast Pre-Agreed Nonce
  • MPAN - Multicast Pre-Agreed Nonce
  • MGRP - Multicast Group
  • SOS - Singlecast Out-of-Sync
  • MOS - Multicast Out-of-Sync

Summary

Functions

Mix and expand the sender and receiver entropy inputs into a nonce using CKDF-MEI.

Computes an ECDH public key for the given private key.

Encode the ECDH public key into a DSK string.

Computes the shared secret using the ECDH algorithm with the local node's private key and the remote node's public key (as reported by S2 Public Key Report).

Expands a network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

Expands a network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

Expands a temporary network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

Types

ecdh_profile()

@type ecdh_profile() :: :curve_25519

kex_scheme()

@type kex_scheme() :: :kex_scheme_1

Functions

ckdf_mei_expand(sender_entropy_input, receiver_entropy_input)

@spec ckdf_mei_expand(<<_::128>>, <<_::128>>) :: <<_::256>>

Mix and expand the sender and receiver entropy inputs into a nonce using CKDF-MEI.

ecdh_public_key(private_key)

Computes an ECDH public key for the given private key.

ecdh_public_key_to_dsk_string(public_key)

Encode the ECDH public key into a DSK string.

ecdh_shared_secret(private_key, remote_public_key)

Computes the shared secret using the ECDH algorithm with the local node's private key and the remote node's public key (as reported by S2 Public Key Report).

generic_expand(network_key, constant_nk)

Expands a network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

network_key_expand(network_key)

Expands a network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

temp_key_expand(prk)

Expands a temporary network key into a CCM key for encryption and authorization, a personalization string, and an MPAN key using the CKDF-Expand algorithm as described in https://datatracker.ietf.org/doc/html/draft-moskowitz-hip-dex-02#section-6.3.

temp_key_extract(ecdh_shared_secret, sender_pubkey, receiver_pubkey)

@spec temp_key_extract(<<_::256>>, <<_::256>>, <<_::256>>) :: <<_::128>>