Metadata-Version: 2.1
Name: cryptofoc
Version: 0.1.0
Summary: Foundation of Cryptography Lab: print full writeups + C++ code for all 10 experiments on the terminal
Author: HAFIZ
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# cryptofoc

Foundation of Cryptography Lab — print the full writeup (aim, theory, algorithm,
ASCII block diagram, ASCII flowchart, C++ code, sample output, applications,
conclusion) for all 10 experiments, right on the terminal.

## Install

```bash
pip install cryptofoc
```

## API

```python
import cryptofoc

cryptofoc.p1()    # print experiment 1
cryptofoc.p2()    # ... and so on up to p10()
cryptofoc.show(4) # print experiment 4 by number
cryptofoc.all()   # print all 10 experiments in order
cryptofoc.list()  # list all 10 experiment titles

# Class form also works:
from cryptofoc import Cryptofoc
Cryptofoc.p1()
Cryptofoc.all()
```

Note: `cryptofoc.1()` is not valid Python — an attribute name may not start
with a digit — so the numbered experiments are `p1()` ... `p10()`.

## The 10 experiments

1. Programs Based on Computational Number Theory: Factorial, Fibonacci, Golden Ratio, Prime Numbers, Palindrome Series and Pattern
2. Implementation of the Extended Euclidean Algorithm
3. Implementation of the Diffie-Hellman Key Exchange Algorithm
4. Implementation of Simplified Data Encryption Standard (S-DES)
5. Implementation of Simplified Advanced Encryption Standard (S-AES)
6. Implementation of RSA Algorithm for Key Generation and Cipher Verification
7. Generation and Use of Digital Signature for a Real-World Situation
8. Implementation of SHA-1 Algorithm Using Library (API) — Windows-only (Windows CryptoAPI)
9. Identifying Software Vulnerabilities Using a Tool (Flawfinder) and Their Analysis
10. Socket Programming: Creating a Server and Client and Testing Connectivity — Windows-only (Winsock)

Experiments 8 and 10 use Windows-only headers (`wincrypt.h`, `winsock2.h`);
their code is kept exactly as in the lab manual and labelled Windows-only in
the printout. All other experiments compile with `g++` on Linux.

Source: Foundation of Cryptography Lab Manual (course code 23UCSPCL3508 /
23UCSPCP3508).
