grizzly v0.10.3 Grizzly.ZWave.Security View Source
Helpers for security
Link to this section Summary
Functions
Decode a byte representation of the key exchanged failed type
Gets the highest security level key from a key list
Get the byte representation of a key.
Get the list of available security keys
Validate the user input pin length, should be a 16 bit number
Link to this section Types
Specs
key() :: :s2_unauthenticated | :s2_authenticated | :s2_access_control | :s0
Specs
key_byte() :: 1 | 2 | 4 | 128
Specs
key_exchange_fail_type() :: :none | :key | :scheme | :curves | :decrypt | :cancel | :auth | :get | :verify | :report
Possible key exchange failures
:none
- Bootstrapping was successful:key
- No match between requested and granted keys:scheme
- no scheme is supported by the controller or joining node:decrypt
- joining node failed to decrypt the input pin from the value. Wrong input value/DSK from user:cancel
- user has canceled the S2 bootstrapping:auth
- the echo kex change frame does not match the earlier exchanged frame:get
- the joining node requested a key that was not granted by the controller at an earlier stage:verify
- the joining node cannot verify and decrypt the exchanged key:report
- the including node transmitted a frame containing a different key than what was currently being exchanged
Link to this section Functions
Specs
Specs
failed_type_from_byte(byte()) :: key_exchange_fail_type() | :unk
Decode a byte representation of the key exchanged failed type
Specs
failed_type_to_byte(key_exchange_fail_type()) :: byte()
Specs
Gets the highest security level key from a key list
Since Z-Wave will work at the highest S2 security group available on a node, if multiple groups are in a list of keys it will assume that highest level is the security level of the node who provided this list.
If the node S0 security Z-Wave will response with granted keys with the lone key being S0.
Specs
Get the byte representation of a key.
The key :none
is an invalid key to encode to,
so this function does not support encoding to that
key.
Specs
keys() :: [key()]
Get the list of available security keys
Specs
Specs
validate_user_input_pin_length(non_neg_integer()) :: :valid | :invalid
Validate the user input pin length, should be a 16 bit number