How mahdighr/asymmetric-cryptography-cystem-diypg works
DIYPG is an educational RSA privacy tool spanning byte-level and GMP block encryption, an interactive key/contact directory, file signing and verification, and a documented Python blockchain key-management phase. The main C entry points are the demonstration program (src/main.c) and the interactive shell (src/interprete.c); the shell dispatches directory, file-crypto, conversion, and signature commands. Supporting layers provide RSA arithmetic, SHA-256, and Base64. The phase-5 directory appears in the tree, but its implementation files are not listed or sampled, so its internal components and connections are not inferred.
Main entry points: interprete.c Interactive shell · main.c C demonstrations · sign.c File signing · clef.c Key directory
Components 15
User interfaces
- C demonstrations
src/main.c - Interactive shell
src/interprete.c
RSA operations
- Byte RSA
src/phase1/phase1.c - RSA key math
src/core/rsa_tools.c - Block and file RSA
src/phase2/phase2.c - Base64 conversion
src/core/other_base64.c
Key directory
- Key directory
src/phase4/clef.c - Contact directory
src/phase4/contact.c - Directory save/load
src/interprete.c - Certificate requests
src/interprete.c
Signing and integrity
- File signing
src/phase4/sign.c - SHA-256
src/core/sha256.c - Signature verification
src/phase4/sign.c
Decentralized keys
- Blockchain key management
src/phase5/python_blockchain_app
Other components
- User
Connections 19
- User → C demonstrations: runs demo
- User → Interactive shell: enters commands
- User → Blockchain key management: uses phase 5
- C demonstrations → Byte RSA: demonstrates byte RSA
- C demonstrations → Block and file RSA: demonstrates block RSA
- Byte RSA → RSA key math: computes modular powers
- C demonstrations → RSA key math: generates keys
- Interactive shell → Key directory: manages keys
- Interactive shell → Contact directory: manages contacts
- Interactive shell → Block and file RSA: encrypts or decrypts files
- Interactive shell → Base64 conversion: converts files
- Interactive shell → Directory save/load: saves or loads directory
- Interactive shell → Certificate requests: creates requests
- Interactive shell → File signing: signs files
- Interactive shell → Signature verification: verifies signatures
- File signing → Key directory: looks up keys
- File signing → SHA-256: hashes input file
- Signature verification → Key directory: looks up keys
- Signature verification → SHA-256: rehashes input file