Projekt

Obecné

Profil

Iteration 3 » Historie » Revize 6

Revize 5 (Jan Pašek, 2021-03-27 08:50) → Revize 6/7 (Jan Pašek, 2021-03-27 09:01)

h1. Iteration #3 

 +*Target:*+ Deliver a minimalistic application with Web GUI that enables the creation of a certificate and list all certificates. The listing shall enable the user to download the certificate and corresponding chain of trust in a separate file.  

 +*Analysis:*+ 
 * Create DAO objects - Certificate, Private Key 
 * Create a subset of Rest API endpoints 
 * Create a simple GUI 

 *DAO:* 

 _Certificate_ 
 * get_certificate_by_id - queries a certificate based on given ID 
 * get_all_certificates - select all certificates 
 * get_all_certificate_authorities - select all certificate authorities 
 * get_issuer_of - get issuer of a certificate given by ID 
 * get_private_key_of - get private key ID of a certificate given by ID 
 * insert_new_certificate - inserts a new certificate into the DB 

 _Private key_ 
 * get_private_key_by_id - queries a private key based on given ID 
 * insert_new_private_key - inserts a new private key into the DB 

 *Rest API* 
 * create_certificate - uses core (create certificate) - _FR 5.1.1_, _FR 5.1.4_, _FR 5.1.7_, _FR 5.2_ 
 * get_certificate (by id) - uses DAO directly 
 * get_certificate_chain (by id) - uses core (construct chain) 
 * list_certificates - with possibility to filter CAs only (uses DAO directly - get_all_certificates, get_all_certificate_authorities) 

 *Core* 
 * generate a private key - partially _FR 1.1.2_ 
 * create certificate - self-signed, with CA=true extensions, with usage specification - _FR 1.1.1_, _FR 1.1.5_, _FR 1.1.6_, partially _1.1.7_, _FR 2.1.1_, partially _FR 2.1.2_, _FR 2.1.5_, _FR 2.1.6_, partially _2.1.7_ 
 * construct chain - partially _1.1.7_ 

 *GUI* 
 * create certificate window - basic version of the GUI proposal, no CSS required, selects all CAs into the dropdown, enables to select the purpose, sends request to create a certificate - _FR 4.3_ 
 * certificate listing - basic HTML table with a common name, validity start date, validity end date, type, the link for downloading the certificate in PEM, link for downloading the chain in PEM - _FR 4.1_, _FR 4.4_