SimpleSerial is the name given to the default communication protocol used by NewAE Technology Inc.'s demos.
== Commands ==
{| class="wikitable"
!Command
!Example
!Description
!In/Out!ENC!AUTH
|-
|h
|h0\n|Select stack / hardware to use (if supported).|In|M|M
|-
|i
|
|
|
|
|
|-
|j
|
|
|
|
|
|k2b7e151628aed2a6abf7158809cf4f3c\n
|
|In
|Y
|Y
|-
|l
|
|
|-
|m
|
|
|
|-
|m
|m0\n
|Select cipher mode (if supported)
|In
|M
|M
|-
|n
|
|
|
|
|
|p126110475e17505a6966be70c89a829c\n
|Send input plain-text, cause encryption
|In
|Y
|Y
|-
|q
|
|
|
|
|
|r10000000000000000000000000000000\n
|Result of function - if encryption is encrypted result, if auth is '0..0' or '100..0'.
|Out
|Y
|Y
|-
|s
|
|
|
|
|
|t
|t640a4a78332a8dee2bce15132ec44027\n
|AuthAuthentication challenge (i.e., expected AES result if using AES as auth-method)|In|N|Y
|-
|u
|
|
|
|
|
|-
|v
|
|
|
|
|
|xxxxx\n
|Clears Buffers (resets to 'IDLE' state), does not clear any variables.
|In
|Y
|Y
|-
|y
|
|
|
|
|
|-
|z
|
|
|
|
|
|}
Y = YES, Command support for application.
N = NO, Command not supported for application.
M = MAYBE, Command may be supported depending on build target.
== Encryption Application ==
The encryption application provides a simple method to encrypt a plaintext into a ciphertext. This application was the original "simple serial". The following operations are performed:
# Load encryption key with 'k' command (for example, k2b7e151628aed2a6abf7158809cf4f3c\n sets key to k2b7e151628aed2a6abf7158809cf4f3c).
# Set input text to encryption module with 'p' command. Device encrypts input text, and toggles the I/O trigger line during the encryption operation.
# The ciphertext is returned with the 'r' command.
== Authentication Application ==
The authentication application does not expose the result of the encryption. Instead, the result is used only in authentication mode, where the following operations are performed:
# Load encryption key with 'k' command (for example, k2b7e151628aed2a6abf7158809cf4f3c\n sets key to k2b7e151628aed2a6abf7158809cf4f3c).
# Set the authentication challenge with 't' command.
# Set input text to encryption module with 'p' command. Device encrypts input text, and toggles the I/O trigger line during the encryption operation.
# Device compares the resulting ciphertext with the challenge set with 't'.
# If challenge and ciphertext match (auth OK), device responds with 'r1000000000000000\n'. If do not match, device response with 'r0000000000000000\n'.
The authentication application is the '''default shipped with ALL programmed modules'''.