You are on page 1of 13

SIL-765 Assignment -2

Web Server to distribute

Digitally Signed Grade-
RAJAT THAKUR (2012CS50295)
Goals & Requirements

Goal:- Building a web server that responds with a degree-certificate

and grade-card whenever someone requests for it.

The request must contain the graduates unique entry-number or something
for the user to be identified by.
The degree-certificate and grade-card (possibly in PDF format) are suitably
digitally signed by the university authorities.
Issues Addressed

Getting the document signed by more than one individual.

Ensuring that only a graduate is able to download it.

In case the graduate decide to share the document with others, how
can one trace the origin of the document?

Access to public-key certificate issued by a certification authority


We built a web server in java which fulfills all the requirements and
address all the issues listed above. Features of our web servers are:-

Users are divided into 3 categories:-

Admin (admin)
Authority (Aashish, Rajat)
Student (Student_1 , Student_2)

Each user access the web server by login into his/her account.

Different users have different capabilities when they access the web-
Admin can send the grade sheets to different authorities for digital signature.
Authorities digitally sign the grade sheets sent to them by admin.
Student can then download the digitally signed grade sheet.

Digital Signatures are marked as visible.

Admin creates blank signature fields in the document to be filled by

multiple authorities.

We used Apache Tomcat 7.0 to create a server and java as the backend
for the server.

Website is divided into following pages:-

Login page
Send Document to Sign
Sign a Document
Download Document

Database for the users was created in mysql which has the following

Key pairs were generated for each of the authorities using the following command:-
Keytool genkeypair alias myRSAKey keyAlg RSa keystore test.p12 storepass test
storetype pkcs12

Some of the features of the keys:-

Generated using RSA.
Keystore(manages private/public keys) Type is PKCS12.

Pubic key Certificate to be used for verification of signature was generated using :-
Keytool export keystore test.p12 alias myRsAKey file Certificate.cer

This certificate can be used by Student to verify the digital signature of

the authority.

Following Libraries for different purpose:-

PDFOne :- For editing PDFs
Mysql-connector-java:- For jdbc connections

Watermarks can also be added to the document to identify the origin of

the document in case it is shared by multiple students.
Send Document To Sign
Document To Sign
Sign Document