We will be using Java support for managing and working with digital certificates and key pairs.
"keytool" is a key and certificate management utility. It enables users to create and manage their own public/private key pairs and certificates for use in self-authentication and for encrypting and authenticating data. You are expected to do the following:
Examine the keytool tool from Java ([url removed, login to view]), and how it works. Use the tool to generate a certificate with public and private keys. Make sure you put your full name as the "common name" of the certificate, and your student ID as the "organization unit".. Use "DSA 1024-bit algorithm" for generating the keys.
import my certificate ([url removed, login to view]) into the keytool.
Write Java code to retrieve my public key and the private key from the keystore you created in (1). Use these keys to (1) encrypt this file ([url removed, login to view]) using my public key (RSA-2048 bit) then (2) digitally sign the result using sha1DSA signature algorithm. Save the digital signature output on a file called "[url removed, login to view]".
Export your certificate to Microsoft .cer format.
You should handle input and output files as a series of bytes.
This is sample code ([url removed, login to view]) for accessing the Keystore from Java.
To simplify things, use the Java "Signature" class.
You may use a different programming language than Java and a different crypto library, but you are expected to submit the same results as above. Make sure you mention the tools you used in your submission.
Here are instructions ([url removed, login to view]) to help you deal with RSA 2048 in Java.
In the default way the RSA is used, a 2048-key will allow you to encrypt 245 bytes. To encrypt the given file, you can divide the file into chunks each 245 bytes and encrypt each, or apply the "data envelope technique", just make sure you document what you used in the Readme file.
You must submit:
Source code with comments
MS Windows binaries (or Java class files) ready to execute.
A README file with Instructions on compiling/running the program.
Your certificate in .cer format, the encrypted file and the "[url removed, login to view]" file, which contains your digital signature on the encrypted file.
Zip or RAR all the above together in one file and submit as attahcment to the assignment. Do not submit over email, because email can get lost!
5 freelancers estão ofertando em média $29 para este trabalho
I have 5 years of experience in developing java/j2ee applications. I can complete the task with code quality and testing and ontime delivery. I had good experience in working with certificates