11
DEVELOPED PROJECTS Maria Gligor Cluj-Napoca 004074670833 [email protected]

Portofolio-Gligor Maria

Embed Size (px)

Citation preview

Page 1: Portofolio-Gligor Maria

DEVELOPED PROJECTS Maria Gligor

Cluj-Napoca 004074670833 [email protected]

Page 2: Portofolio-Gligor Maria

1. EMAIL ENCRYPTION ON ANDROID USING

DIGITAL CERTIFICATES

Developed Application: K-9 Mail with Encryption

K-9 Mail is a Free/Open-source Android mail application. It is a comprehensive

email client that allows sending and receiving emails from one or multiple accounts. K-9

Mail with Encryption allows sending and receiving email securely by encrypting the

contents. The application was developed using Java programming language on Android

Studio. An overview of the application system is presented in the following figure:

For encrypting the message, a symmetric key is generated which is then encrypted

using the RSA algorithm with the public key of the recipient that was previously stored

in a preference file. If there is no key for the recipient, the message will be signed using

the private key of the sender and the public key of the sender will be appended to the

message.

Page 3: Portofolio-Gligor Maria

The message will end up structured at the other end as it can be seen in the

following screenshot, for being able to extract the information needed for decrypting it:

Page 4: Portofolio-Gligor Maria

The decrypted message will be displayed appended when the message is open for

reading if the signature was successfully validated (if it was signed):

For starting a new mail in K-9 the compose icon can be tapped from any

screen. On the screen for email composition, the recipient can be added by manually

typing it or pressing and choosing one from the address book. For sending an

encrypted mail, the box for encryption must be checked: . For sending a signed

mail, the box for signing must be checked: . After pressing for sending,

the public key of the recipient is retrieved from the preference file and the steps

described above are applied to the message.

When opening the encrypted or signed message, the signature is being validated.

A successful validation leads to the extraction of the encrypted symmetric key and its

decryption using the recipient’s private key. The last step is to decrypt the message with

the decrypted symmetric key and the original message is appended at the end of the

encrypted message.

This process prevents anyone that is eavesdropping on your conversation from

seeing the message in a readable format. When using a signature, the authenticity of

the message can be established as the private key of the sender is used for signing and

the public key of the sender is used for validating it.

Page 5: Portofolio-Gligor Maria

2. LIBRARY

Use Case Specification: Borrow

Brief Description

This use case describes how a subscriber of a library borrows books

Actor: User

Basic Flows

The use case begins when a user wants to borrow books.

1. The user selects to borrow a book

2. The system displays the list of available books and provides the option for searching a

certain book

3. The user selects a book or searches for it manually

4. The user confirms his choice and proceeds with the request or goes back to borrowing other

books

5. The system updates the list of available books and registers the reservation

6. The system displays the confirmation number, the borrowed books and the date of return

7. The use case terminates

Alternate Flows

A1. Search manually

In step 3, if the user searches for a book manually, the system will display the list of books

that contain the string that has been typed, together with the status: borrowed or available.

Page 6: Portofolio-Gligor Maria

A2. Maximum 3 books

In step 5, if the user has already three books that he wants to borrow, he is prompted with a

message and cannot select anymore books. He can cancel the request and the use case terminates or

proceeds with the request and the basic flow goes further.

Preconditions

The subscriber has logged in to the system

Postconditions

After a successful request, a new registration is created and the list of available books is updated,

otherwise, there is no change to the database.

Use Case Specification: Return

Brief Description

This use case describes how a user returns books

Actor: User

Basic Flows

The use case begins when a user wants to return books.

1. The user selects to return a book and introduces the user ID

2. The system displays the list of books that are currently borrowed by the given user

3. The user selects the books to be returned

4. The system updates the list of available books

5. The use case terminates

Preconditions

The user has logged in to the system and is of type librarian

Postconditions

After a successful return, the list of available books is updated, otherwise, there is no change to

the database.

Special Requirements

The system must handle 5 concurrent requests.

Page 7: Portofolio-Gligor Maria

Class Diagram:

Page 8: Portofolio-Gligor Maria

A library offers its subscribers books that can be borrowed. The library has many

terminals where the subscribers can borrow books. In order to use the terminal, the subscriber must introduce his/her library ID.

After a successful identification, the subscriber sees all the available books:

Page 9: Portofolio-Gligor Maria

and may borrow one or more books (no more than three):

Page 10: Portofolio-Gligor Maria

After the loan is completed, all the other subscribers using the terminals see the updated list of available books.

The subscriber can also search for a book, by typing a substring from the title. The terminal will display all the books from the library containing that substring together with their status (borrowed or available).

Page 11: Portofolio-Gligor Maria

For returning books there is only one terminal. In order to return a book the subscriber introduces his/her library ID and the book ID. After a successful return the list of available books is automatically updated.

This application was developed in Microsoft Visual Studio using C# programming

language and it uses the following concepts:

- client/server communication: TCP/IP - XML documents - reflection - persistence: binary files