I need a small software written in Java and using BouncyCastle library ([url removed, login to view]). The application can be in CLI or in a very simple GUI interface.
It should have basically 2 functions:
1 - Sign a file: In this option the user should select a digital certificate in PKCS#12 format (using pfx or p12 extension) and any file in the system. After validate the certificate (explained below) the application will create a digital signature of the selected file and save it on a second file with the same name but with a p7s extension and using CMS/PKCS#7 format.
2 - Check a signature: The user will select the signed file, the p7s file related and the certificate. After validate the certificate (explained below), it should check if the signature is valid.
Certificate validation process: it should first check the expiration date (not after and not before) and check the CRL and OCSP (if available) to check if the certificate wasn't revoked. If the certificate is expired or revoked, it should display an error message to the user asking him to use a valid certificate. If the certificate is valid, check if it is a self-signed certificate, if not, get all certificate chain until Root-CA. So display a message to the user saying that the certificate is self signed or signed by [use here the Root-CA name], asking the user if he confirm his trust in the certificate. If yes, the certificate is validated and can be used.
It must use the specified formats and extensions. Also I will need the complete code because maybe will be necessary to adapt some words for my region. Please comment the code and use english language.
6 freelancers are bidding on average $147 for this job
[url removed, login to view] the skill specified [url removed, login to view] the framework [url removed, login to view] [url removed, login to view] acceptance test [url removed, login to view] and check