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

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

@type ecdh_profile() :: :curve_25519
@type kex_scheme() :: :kex_scheme_1

Functions

Link to this function

ckdf_mei_expand(sender_entropy_input, receiver_entropy_input)

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

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

Link to this function

ecdh_public_key(private_key)

View Source

Computes an ECDH public key for the given private key.

Link to this function

ecdh_public_key_to_dsk_string(public_key)

View Source

Encode the ECDH public key into a DSK string.

Link to this function

ecdh_shared_secret(private_key, remote_public_key)

View Source

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).

Link to this function

generic_expand(network_key, constant_nk)

View Source

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.

Link to this function

network_key_expand(network_key)

View Source

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.

Link to this function

temp_key_extract(ecdh_shared_secret, sender_pubkey, receiver_pubkey)

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