Tugas 4 II4031 Kriptografi dan Koding Semester II Tahun 2023/2024
https://academic-trascript.azurewebsites.net/docs#/
- Muhammad Rafi Haidar - 18221134
- Raditya Azka Prabaswara - 18221152
Program ini merupakan aplikasi backend dari aplikasi tugas 4. Program utama menjalankan server Uvicorn dengan framework FastAPI yang dapat diakses di pranala di atas. Repository juga memuat implementasi algoritma RSA, RC4, dan SHA-3 di direktori cryptography.
- Python 3.12 atau terbaru
Program ini memiliki kemampuan untuk:
- Membangkitkan kunci publik dan kunci privat RSA;
- Membangkitan tanda tangan digital (signing) dengan algoritma hash SHA-3 dan RSA;
- Memverifikasi tanda tangan digital (verifying);
- Memasukkan data akademik;
- Mengenkripsi dan mendekripsi field basis data dengan algoritma RC4;
- Mengenkripsi field basis data yang sudah ditandatangani;
- Menampilkan isi basis data ke layar (plaintext dan ciphertext);
- Membuat laporan transkrip akademik setiap mahasiswa dan menyimpan dalam bentuk file PDF yang dienkripsi dengan algoritma AES; dan
- Mendekripsi file laporan akademik kembali ke format PDF.
Apabila ingin mengakses server melalui internet tanpa melakukan instalasi kunjungi https://academic-trascript.azurewebsites.net/docs
Apabila ingin menjalankan server di mesin lokal:
- Unduh berkas Zip kode sumber dari repository atau clone repository Github
- Buka direktori yang sudah berisi kode sumber melalui CLI seperti terminal atau command prompt, atau buka direktori kode sumber di aplikasi IDE seperti Visual Studio Code
- Unduh semua package python yang digunakan di program ini ketik pada command prompt
pip install -r requirements.txt
- Jalankan berkas gui.py, apabila menggunakan command prompt, ketik
python main.py
- Akses localhost/docs di peramban web, pastikan tak ada aplikasi lain yang menggunakan port 80
Pada dokumentasi FastAPI:
- Jalankan endpoint /transcript dengan request GET untuk mendapatkan transkrip yang tidak terenkripsi.
- Jalankan endpoint /transcript/encrypted dengan request GET untuk mendapatkan transkrip yang terenkripsi, mengecualikan tanda tangan digital.
- Jalankan endpoint /transcript/encrypted/all dengan request GET untuk mendapatkan transkrip yang terenkripsi.
- Jalankan endpoint /transcript dengan request POST untuk mendapatkan transkrip yang terenkripsi. Kirim request body sesuai dengan format yang ada di dokumentasi.
- Jalankan endpoint /key dengan request GET untuk mendapatkan eksponen dan modulus kunci RSA saat ini.
- Jalankan endpoint /key/generate dengan request GET untuk membangkitkan kuci RSA baru.
- Jalankan endpoint /signature dengan request POST untuk memvalidasi tanda tangan di transkrip. Kirim request body sesuai dengan format yang ada di dokumentasi.
- Jalankan endpoint /pdf/encrypted dengan request POST untuk mengunduh berkas PDF transkrip yang terenkripsi. Kirim request body sesuai dengan format yang ada di dokumentasi.
- Jalankan endpoint /pdf/decrypted dengan request POST untuk mengirim berkas PDF yang dienkripsi dan mengunduh berkas PDF transkrip yang telah didekripsi. Kirim request body sesuai dengan format yang ada di dokumentasi.