In seguito alla Determinazione Commissariale n. 69/2010 (del 28 luglio 2010) che modifica la Deliberazione CNIPA n. 45/2009 sono stati modificati i termini per l’utilizzo delle nuove regole a proposito di Firma Digitale.
Entro il 31 dicembre 2010 tutte le applicazioni che sfruttano questa tecnologia dovranno implementare i nuovi formati di firma (tra cui il più robusto algoritmo SHA-256) a partire dal 31 agosto 2010; devono rendere disponibili dette applicazioni entro il 31 dicembre 2010. Infatti oltre il 30 giugno 2011 i documenti firmati con il vecchio formato non saranno più validi. (Per approfondimenti: www.cnipa.gov.it)
Abbiamo quindi cercato una libreria che implementasse il famigerato SHA-256 e che permettesse varie tipologie di firma e di verifica.
ESEMPI DI UTILIZZO
Attivazione della liberia:
try
{
License.Activate(activationCode);
}
catch (LicenseException ex)
{
return;
}
Firma Semplice:
Pkcs7Result res = Pkcs7Utility.CreatePkcs7(string fileInput, string Pin, string fileOutput);
if (res != Pkcs7Result.Ok)
{
Error("Errore durante la firma: {0} - {1}", Pkcs7Utility.LastError, Pkcs7Utility.LastErrorMessage);
return;
}
Firma Parallela o Controfirma
Pkcs7Result res = Pkcs7Utility.AddSignature(fileInput, Pin, tmpFile);
Ottenere i certificati di firma:
X509Certificate2Collection listaCertificati;
bool res = Pkcs7Utility.VerifyPkcs7(txtSelectedFile.Text, out listaCertificati, true);
Mostrare un certificato:
Pkcs7Utility.ShowCertificate(certificato);
Estrarre dati originali dal file firmato:
string fileOutput = Pkcs7Utility.GetOriginalFilename(fileInput);
bool res = Pkcs7Utility.ExtractDataFromPkcs7(fileInput, fileOutput);