Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. LibTomCrypt

LibTomCrypt

NOASSERTIONCv1.18.2

A comprehensive, modular, and portable cryptographic toolkit providing block ciphers, hash functions, PRNGs, public key cryptography, and more.

Visit WebsiteGitHubGitHub
1.8k stars494 forks0 contributors

What is LibTomCrypt?

LibTomCrypt is a comprehensive cryptographic toolkit written in C that provides developers with a vast array of well-known cryptographic algorithms including block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, and public key cryptography. It solves the problem of needing a portable, modular, and self-contained cryptographic library for applications ranging from embedded systems to desktop software.

Target Audience

C developers working on projects requiring cryptographic functionality, especially those targeting embedded systems, cross-platform applications, or environments where modularity and portability are critical.

Value Proposition

Developers choose LibTomCrypt for its modular design that allows trimming down functionality, excellent portability across platforms, support for multiple math libraries, and a clean, well-documented codebase that's easier to audit and integrate than larger alternatives.

Overview

LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.

Use Cases

Best For

  • Embedded systems requiring cryptographic functionality with minimal footprint
  • Cross-platform applications needing consistent crypto across different operating systems
  • Educational projects studying cryptographic algorithm implementations
  • Custom applications where specific cryptographic primitives must be selectively enabled
  • Projects needing to switch between different big integer math libraries (GMP, libtommath, tomsfastmath)
  • Security tools requiring self-contained cryptographic testing and timing utilities

Not Ideal For

  • Projects needing high-level cryptographic protocols like TLS/SSL without additional implementation
  • Teams requiring extensive online documentation and tutorials for quick onboarding
  • Applications where stable binary compatibility is critical due to frequent dependency updates
  • Environments preferring simple, unified build systems over multiple makefile configurations

Pros & Cons

Pros

Modular Compile-Time Configuration

Allows selective enabling or disabling of algorithms via tomcrypt_custom.h, enabling optimization for size or functionality as noted in the README's configuration options.

Broad Platform Support

Provides dedicated makefiles for UNIX, Windows (MinGW/MSVC), and embedded systems, ensuring portability across diverse environments as highlighted in the build system section.

Flexible MPI Integration

Supports multiple big integer libraries like GMP, libtommath, and tomsfastmath, selectable at runtime or compile-time for performance tuning, with examples in the building instructions.

Comprehensive Self-Testing

Includes built-in test binaries for algorithm validation and timing measurements, aiding development and debugging, as mentioned in the make targets like 'test' and 'timing'.

Cons

Documentation Fragmentation

Detailed documentation is only available as a PDF in release tarballs, not hosted online, making it less accessible for quick reference, as stated in the README's project status note.

Complex Build Configuration

Requires manual management of multiple makefiles and compiler flags, which can be error-prone and challenging, evidenced by the need for specific CFLAGS and EXTRALIBS in examples.

Limited High-Level Tools

Binary utilities like hashsum and crypt are basic, and some like openssl-enc have broken builds in certain configurations, lacking robust command-line interfaces as noted in make targets.

Frequently Asked Questions

Quick Stats

Stars1,780
Forks494
Contributors0
Open Issues39
Last commit3 days ago
CreatedSince 2010

Tags

#c-library#modular#portable#c#encryption#cryptography#public-key-cryptography#crypto-toolkit#hash-functions

Built With

v
visual-studio
C
CMake
G
GNU Make
C
C++

Links & Resources

Website

Included in

C/C++70.6kCryptography6.8k
Auto-fetched 5 hours ago

Related Projects

OpenSSLOpenSSL

General purpose TLS and crypto library

Stars30,507
Forks11,373
Last commit18 hours ago
libsodiumlibsodium

A modern, portable, easy to use crypto library.

Stars13,826
Forks1,885
Last commit8 days ago
TinkTink

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Stars13,540
Forks1,189
Last commit2 years ago
xxHashxxHash

Extremely fast non-cryptographic hash algorithm

Stars11,161
Forks907
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub