Specifications

The functionality (meaning) of the CTS pin is controlled by the SNAPpy built-in function
flowControl(). Refer to the description of that function in the “SNAPpy – The API” section of this
document.
Encryption between SNAP nodes
Communications between SNAP nodes are normally unencrypted. Using the SNAP Sniffer (or some
other means of monitoring radio traffic) you can clearly see the traffic passed between nodes. This can
be very useful when establishing or troubleshooting a network, but provides no protection for your
data from prying eyes. Encrypting your network traffic provides a solution for this. By encrypting all
your communications, you reduce the chances that someone can intercept your data.
SNAP nodes offer two forms of encryption. If you have a compatible firmware version loaded into
your nodes, you can configure them to use AES-128 encryption for all their communications. You
must have a firmware version that enables AES-128 to be able to do this. You can determine which
firmware is loaded into a node by checking the Node Info pane for the node in Portal. Firmware that
supports AES-128 encryption will include “AES-128” in the firmware name.
Nodes that support AES-128 encryption are not available in all jurisdictions. Also, the Si100x
platform does not have an AES-128 build available, due to space constraints. (The RF300/RF301
builds, based on the Si100x platform, have external memory available and therefore do have AES-128
builds available.) Users who would like some protection for their data but do not have AES-128
encryption available can use Basic encryption instead. Basic encryption is not strong encryption, and
should not be relied on for high-security applications. But it does provide a level of protection to keep
your data away from curious onlookers. Basic encryption is available in all SNAP nodes running
firmware version 2.4 or newer.
Enabling encryption requires two steps. First you must indicate that you would like to encrypt your
traffic, and specify which form of encryption you wish to use. Then you must specify what your
encryption key is. After rebooting the node, all communications from the node (both over the air and
over the UARTs) is encrypted, and the node will expect all incoming communications to be encrypted.
It will no longer be able to participate in unencrypted networks.
NV parameter #50 is where you indicate which form of encryption should be used. The valid values
are:
0 = Use no encryption
4
1 = Use AES-128 encryption
2 = Use Basic encryption
NV parameter #51 is where you specify the encryption key for your encrypted network. The key must
be exactly 16 bytes long. You can specify the key as a simple string (e.g., ThEeNcRyPtIoNkEy), as a
series of hex values (e.g., \x2a\x14\x3b\x44\xd7\x3c\x70\xd2\x61\x96\x71\x91\xf5\x8f\x69\xb9) or as
some combination of the two (e.g. \xfbOF\x06\xe4\xf0Forty-Two!). Standard security practices
suggest you should use a complicated encryption key that would be difficult to guess.
4
SNAP nodes running a firmware version before 2.4 may have False and True instead of 0 and 1, respectively, in this
parameter. These boolean values are compatible with the numeric values used beginning with release 2.4. Basic encryption
was not available before release 2.4.
Page 40 of 202 SNAP Reference Manual Document Number 600-0007K