Skip to main content
Version: 5.0

SCHC Datagram Transport Layer Security

With the DTLS version of Acklio FullSDK, all communications performed by the Network Interface and by the Datagram Interface are layered over DTLS (Datagram Transport Layer Security) version 1.2.

As required by DTLS, an initial handshake is requested by ATModem. The handshake is handled in a transparent way by Acklio FullSDK, but ATModem informs the application of success or failure.

Acklio FullSDK DTLS layer must be configured before performing the handshake. The device must be provided with the following by calling the associated AT command:

  • A pre-shared key identity (PSK_ID)
  • A pre-shared key value (PSK_value)
  • A retry number (retry_number)
  • A timeout period (timeout)

Of course, these values must match the ones defined when provisioning the device on Acklio IPCore side.

In order to make things simpler for the application, ATModem automatically starts the handshake right after the join request has been accepted.

Configuration

Security

The <PSK_Value> should be at least 32 characters long.

WhatDetail
CommandAT+SCHC=DTLSCONF,SET,<PSK_ID>,<PSK_value>,<retry_number>,<timeout>
Parameters<PSK_ID> The pre-shared key identity.
It must be a 4-bytes, specified in hexadecimal (ASCII 8 characters).
For example, specify 30313233 to configure the 0123 string.
 <PSK_value> The pre-shared key value.
It must be a binary string, at least 16-bytes long specified in hexadecimal (ASCII 16 characters at least).
For example, specify 0001020304050607 to configure the binary string 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07.
 <retry_number> The number of times the handshake will be tried in case of problem
 <timeout> The maximum time period Acklio FullSDK waits for a handshake response from IPCore, in seconds
Result codesOK
 AT_PARAM_ERROR

The configuration command must be issued before the join command (described below).

Join

WhatDetail
CommandAT+JOINDTLS=<class>
Parameter<class> - A or C
Result codesOK
 AT_PARAM_ERROR
 AT_ERROR,1,<error>
 +JOINED
 +HANDSHAKEOK
 +HANDSHAKEFAIL

When the class is correct, the OK result code is returned immediately.

  • If the join request succeeds, the +JOINED result code is returned a few seconds later.
  • If it failed, no additional result code is returned.

Then, if the handshake succeeds, the +HANDSHAKEOK result code is returned a few seconds later.
If it does not succeed, the +HANDSHAKEFAIL result code is returned.

Specific Command

For the DTLS version of Acklio FullSDK, the JOINDTLS command replaces the JOIN command of the non-DTLS version.

The errors of the non-DTLS version of the join command of Acklio FullSDK may be returned, in case of problem.

Additionnally, this error may be returned:

AT_ERROR,6,<status> reports a DTLS layer error, with the following possible values for status:

Numeric valueError codeComment
20DTLS_NOT_INITIALIZED_ERRDTLS layer has not been configured
On this page