How nicoadresse/hjlix works
hjlix is a Rust command-line cryptography utility. Users select a command and algorithm through the CLI, provide strings or file paths, and receive hashes, encrypted/decrypted text, or Base64 results on stdout; some commands also support file output. The main workflow is CLI dispatch into distinct SHA-2, SHA-3/Keccak, AES-GCM, or Base64 implementations. AES-GCM additionally supports key generation and key-file-based decryption. The source index documents routing to several implementations whose bodies were not sampled, so those links reflect dispatch evidence rather than inspection of their internals.
Main entry points: entcli.rs Command dispatch · aes_gcmstr_impl.rs String encryption · aes_gcmdecryption_impl.rs String decryption · aes_gcm_types.rs AES variants
Components 21
CLI entry
- Program entry
src/main.rs - Command dispatch
src/cli/entcli.rs
Hashing
- SHA-2 processing
src/cli/sha2/sha2str_impl.rs - SHA-2 files
src/cli/sha2/sha2file_impl.rs - SHA-2 variants
src/cli/sha2/sha2_types.rs - SHA-3 processing
src/cli/sha3/sha3str_impl.rs - SHA-3 files
src/cli/sha3/sha3file_impl.rs - SHA-3 variants
src/cli/sha3/sha3_types.rs - Digest interface
src/cli/traits/digest.rs
AES-GCM
- AES variants
src/cli/aes_gcm/aes_gcm_types.rs - String encryption
src/cli/aes_gcm/aes_gcmstr_impl.rs - File encryption
src/cli/aes_gcm/aes_gcmfile_impl.rs - String decryption
src/cli/aes_gcm/aes_gcmdecryption_impl.rs - File decryption
src/cli/aes_gcm/aes_gcmdecryptionfile_impl.rs - Key generation
src/cli/traits/generate_aes_key.rs - Local key file
Base64
- Base64 encoding
src/cli/base64/base64_encryption_impl.rs - Base64 decoding
src/cli/base64/base64_decryption_impl.rs - Base64 engines
src/cli/base64/base64_types.rs
Other components
- CLI user
- Terminal output
Connections 32
- CLI user → Program entry: runs command
README.md - Program entry → Command dispatch: starts CLI
src/main.rs - Command dispatch → SHA-2 processing: dispatches string
src/cli/entcli.rs - Command dispatch → SHA-2 files: dispatches files
src/cli/entcli.rs - Command dispatch → SHA-3 processing: dispatches string
src/cli/entcli.rs - Command dispatch → SHA-3 files: dispatches files
src/cli/entcli.rs - SHA-2 files → SHA-2 variants: digests lines
src/cli/sha2/sha2file_impl.rs - SHA-3 files → SHA-3 variants: digests lines
src/cli/sha3/sha3file_impl.rs - SHA-2 variants → Digest interface: implements
src/cli/sha2/sha2_types.rs - SHA-3 variants → Digest interface: implements
src/cli/sha3/sha3_types.rs - Command dispatch → String encryption: dispatches encryption
src/cli/entcli.rs - Command dispatch → File encryption: dispatches encryption
src/cli/entcli.rs - Command dispatch → String decryption: dispatches decryption
src/cli/entcli.rs - Command dispatch → File decryption: dispatches decryption
src/cli/entcli.rs - String encryption → AES variants: selects cipher
src/cli/aes_gcm/aes_gcmstr_impl.rs - String encryption → Key generation: generates key
src/cli/aes_gcm/aes_gcmstr_impl.rs - File encryption → AES variants: uses cipher
src/cli/aes_gcm/aes_gcmfile_impl.rs - String encryption → Local key file: writes generated key
src/cli/aes_gcm/aes_gcmstr_impl.rs - String decryption → Local key file: reads supplied key
src/cli/aes_gcm/aes_gcmdecryption_impl.rs - String decryption → AES variants: identifies cipher
src/cli/aes_gcm/aes_gcmdecryption_impl.rs - File decryption → AES variants: identifies cipher
src/cli/aes_gcm/aes_gcmdecryptionfile_impl.rs - Command dispatch → Base64 encoding: dispatches encoding
src/cli/entcli.rs - Command dispatch → Base64 decoding: dispatches decoding
src/cli/entcli.rs - Base64 encoding → Base64 engines: encodes variant
src/cli/base64/base64_encryption_impl.rs - Base64 decoding → Base64 engines: decodes variant
src/cli/base64/base64_decryption_impl.rs - SHA-2 processing → Terminal output: prints results
- SHA-2 files → Terminal output: prints results
src/cli/sha2/sha2file_impl.rs - SHA-3 files → Terminal output: prints results
src/cli/sha3/sha3file_impl.rs - String encryption → Terminal output: prints ciphertext
src/cli/aes_gcm/aes_gcmstr_impl.rs - String decryption → Terminal output: prints plaintext
src/cli/aes_gcm/aes_gcmdecryption_impl.rs - Base64 encoding → Terminal output: prints results
- Base64 decoding → Terminal output: prints results