CycloneCrypto is a cryptographic toolkit designed for use in embedded systems. It provides a comprehensive set of cryptographic primitives (hash functions, stream and block ciphers, public key cryptography) that can be used to add security features to your embedded application. CycloneCrypto is available either as open source (GPLv2) or under a commercial license.

- Base64 data encoding
- MD2, MD4 and MD5 hash functions
- RIPEMD-128 and RIPEMD-160 hash functions
- SHA-1 hash function
- SHA-2 family hash functions (SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256)
- SHA-3 family hash functions (SHA3-224, SHA3-256, SHA3-384 and SHA3-512)
- Tiger/192 hash function
- Whirlpooh hash function
- Keccak sponge function
- Hash Message Authentication Code (HMAC) for all hash functions
- RC4 stream cipher
- Block ciphers (RC6, IDEA, DES, Triple DES, AES, Camellia, SEED, ARIA)
- Supports ECB, CBC, CFB, OFB and CTR operation modes for all symmetric block ciphers
- Cipher Block Chaining-MAC (CCM) and Galois Counter Mode (GCM)
- ChaCha encryption algorithm
- Poly1305 message-authentication code
- ChaCha20Poly1305 Authenticated Encryption with Associated Data (AEAD)
- RSA public key cryptography (PKCS #1 v1.5)
- Digital Signature Algorithm (DSA)
- Diffie-Hellman key exchange (PKCS #3)
- Password-Based Cryptography Standard (PKCS #5)
- Elliptic Curve Cryptography (ECC)
- Elliptic Curve Digital Signature Algorithm (ECDSA)
- Elliptic Curve Diffie-Hellman (ECDH)
- Supports elliptic curves defined over prime fields (NIST-P and Brainpool)
- Multiple precision arithmetic library with optimized assembly code (for ARM and MIPS-based microcontrollers)
- X.509 certificate parsing functions
- Flexible memory footprint. Built-time configuration to embed only the necessary features
- Portable architecture (supports little-endian and big-endian architectures)
- Extensive test suite available on request (for commercial licenses)

CycloneCrypto supports the following 32-bit architectures:

- ARM7
- ARM9
- Cortex-M3
- Cortex-M4
- Cortex-R4
- Cortex-A5
- Cortex-A8
- Cortex-A9
- APS1 / APS3 / APS3R / APS5 / FPS6
- AVR32
- Coldfire V2
- PIC32
- RX600

CycloneCrypto supports the following elliptic curves:

- secp160k1
- secp160r1
- secp160r2
- secp192k1
- secp192r1 (NIST P-192)
- secp224k1
- secp224r1 (NIST P-224)
- secp256k1
- secp256r1 (NIST P-256)
- secp384r1 (NIST P-384)
- secp521r1 (NIST P-521)
- brainpoolP256r1
- brainpoolP384r1
- brainpoolP512r1

CycloneCrypto Brochure

CycloneCrypto Open is released under the GPLv2 license and is available for download. If you want to browse the source tree instead of downloading, the complete source code and documentation are also available online.

Download Source Code

Browse Source Code and Documentation

The cryptographic library is available either as open source (CycloneCrypto Open) or under a commercial license (CycloneCrypto Lite, Pro or Ultimate) for proprietary developments in a commercial context:

- The open source version CycloneCrypto Open is available for free. Developers must freely distribute the complete source code of their application, making it available for end users.
- The commercial version CycloneCrypto Lite includes basic algorithms only.
- The commercial version CycloneCrypto Pro includes more advanced algorithms such as Diffie-Hellman key exchange, DSA signature, CCM/GCM cipher modes.
- The commercial version CycloneCrypto Ultimate is a full-featured cryptographic library, including support for SHA-3, Chacha20Poly1305 and Elliptic-Curve Cryptography (ECC).

CycloneCrypto Open | CycloneCrypto Lite | CycloneCrypto Pro | CycloneCrypto Ultimate | |
---|---|---|---|---|

License | Open source | Commercial | Commercial | Commercial |

Source code | Y | Y | Y | Y |

Royalty free | Y | Y | Y | Y |

Doxygen documentation | Y | Y | Y | Y |

Test suite | N | Y | Y | Y |

Support and maintenance | optional | Y | Y | Y |

CycloneCrypto Open | CycloneCrypto Lite | CycloneCrypto Pro | CycloneCrypto Ultimate | |
---|---|---|---|---|

Base64 data encoding | Y | Y | Y | Y |

MD2, MD4 and MD5 hash functions | Y | Y | Y | Y |

SHA-1 hash function | Y | Y | Y | Y |

SHA-2 family hash functions | Y | Y | Y | Y |

HMAC message authentication | Y | Y | Y | Y |

RC4 stream cipher | Y | Y | Y | Y |

DES and Triple DES block cipher | Y | Y | Y | Y |

AES block cipher | Y | Y | Y | Y |

ECB, CBC, CFB, OFB and CTR cipher modes | Y | Y | Y | Y |

RSA public key cryptography | Y | Y | Y | Y |

Multiple precision arithmetic library | Y | Y | Y | Y |

X.509 certificate parsing | Y | Y | Y | Y |

RIPEMD-128/160 hash functions | Y | N | Y | Y |

Tiger/192 hash function | Y | N | Y | Y |

Whirlpooh hash function | Y | N | Y | Y |

RC6 block cipher | Y | N | Y | Y |

IDEA block cipher | Y | N | Y | Y |

Camellia block cipher | Y | N | Y | Y |

SEED block cipher | Y | N | Y | Y |

ARIA block cipher | Y | N | Y | Y |

CCM and GCM cipher mode | Y | N | Y | Y |

Diffie-Hellman key exchange | Y | N | Y | Y |

Digital Signature Algorithm (DSA) | Y | N | Y | Y |

SHA-3 family hash functions | Y | N | N | Y |

Keccak sponge function | Y | N | N | Y |

ChaCha encryption algorithm | Y | N | N | Y |

Poly1305 message authentication | Y | N | N | Y |

ChaCha20Poly1305 AEAD | Y | N | N | Y |

Password-Based Cryptography (PKCS #5) | Y | N | N | Y |

Elliptic Curve Cryptography (ECC) | Y | N | N | Y |

Elliptic Curve DSA (ECDSA) | Y | N | N | Y |

Elliptic Curve Diffie-Hellman (ECDH) | Y | N | N | Y |

NIST-P elliptic curves | Y | N | N | Y |

Brainpool elliptic curves | Y | N | N | Y |