Chapter 1 - Introduction to Azure RTOS NetX Crypto
Azure RTOS NetX Crypto is a high-performance real-time implementation of cryptographic algorithms designed to provide data encryption and authentication services. NetX Crypto is designed to plug in for NetX Secure TLS, DTLS, and IPsec modules. Applications may also use NetX Crypto as a standalone module outside network security.
NetX Crypto Unique Features
NetX Crypto is implemented in the standard C language (C99), compatible with virtually all C/C++ compilers. Its modular design allows an application to only link in the crypto algorithms it needs to use, therefore achieving minimal code size. The implementation is designed to work with most 32-bit microprocessors and uses only the basic math operations (addition, subtraction, multiplication, division, logical AND, OR, NOR, and bit shift operations). All these operations are used with 32-bit quantities, making NetX Crypto portable across most 32-bit microprocessors. The implementation is specifically optimized to run on resource constrained microprocessors, targeting deeply embedded applications.
Algorithms supported by NetX Crypto
NetX Crypto supports the following cryptographic algorithms. NetX Crypto follows all general recommendations and basic requirements within the constraints of a real-time operating system and platforms requiring a small memory footprint and efficient execution.
Algorithm | Key Length (bits) |
---|---|
AES(CBC, CTR) | 128, 192, 256 |
AES(XCBC) | 128 |
AES-CCM 8 | 128 |
3DES(CBC) | 192 |
HMAC-SHA1 | Any length |
HMAC-SHA224 | Any length |
HMAC-SHA256 | Any length |
HMAC-SHA384 | Any length |
HMAC-SHA512 | Any length |
HMAC-SHA512/224 | Any length |
HMAC-SHA512/256 | Any length |
HMAC-MD5 | Any length |
RSA | 1024, 2048, 3072, 4096 |
Algorithm | Digest Length (bits) | Block Size (bits) |
---|---|---|
SHA1 | 160 | 512 |
SHA224 | 224 | 512 |
SHA256 | 256 | 512 |
SHA384 | 384 | 1024 |
SHA512 | 512 | 1024 |
MD5 | 128 | 512 |
HMAC-SHA1 | 160 | 512 |
HMAC-SHA224 | 224 | 512 |
HMAC-SHA256 | 256 | 512 |
HMAC-SHA384 | 384 | 1024 |
HMAC-SHA512 | 512 | 1024 |
HMAC-SHA512/224 | 224 | 1024 |
HMAC-SHA512/256 | 256 | 1024 |
HMAC-MD5 | 128 | 512 |
Elliptic Curve | P192/224/256/384/521 |
NetX Crypto Requirements
TBD: Memory Requirement.. Interrupt/re-entrant safe? Needs discussion
NetX Crypto Constraints
None.