Firma CAdES / PKCS#7
Firma semplice, parallela, controfirma e firma nidificata di buste .p7m.
ZapCard · SDK .NET · v1.7.4
La libreria .NET di Intersail per firmare, marcare temporalmente e verificare
documenti secondo gli standard italiani ed europei. Niente ASN.1, niente protocolli TSA:
poche classi facade e l'operazione è fatta.
// demo
Guarda come firmare, marcare temporalmente e verificare documenti — CAdES, PAdES, marca RFC 3161 e smartcard — in poche righe di codice .NET.
// capabilities
Firma semplice, parallela, controfirma e firma nidificata di buste .p7m.
Un solo inserimento del PIN per firmare molti documenti in sequenza.
Firma incorporata nei PDF, RSA ed ECDSA, con marca temporale. Il file resta leggibile ovunque.
Marche RFC 3161 dalle principali TSA italiane — Infocamere, Actalis, Aruba — anche in CAdES-T.
Validazione di firme e certificati, catena di fiducia, revoche via CRL e OCSP.
Identificazione della carta, lettura dei certificati e dei dati personali tramite lo strato PKCS#11.
Firma «forte» senza dispositivo fisico, attraverso il plugin CMD.
Poche classi facade — Pkcs7Utility, SignatureRequest, ZapCardSigner — nascondono ASN.1 e i protocolli.
// usage
// Firma semplice CAdES — input, output, PIN
Pkcs7Result res = Pkcs7Utility.CreatePkcs7(
inFile, inFile + ".p7m", new SignatureRequest(pin));
// Firma parallela: un secondo firmatario sulla stessa busta
Pkcs7Utility.AddSignature(p7m, p7m, new SignatureRequest(pin2));
// Marca temporale RFC 3161 da una TSA accreditata
TSProvider tsa = TSProvider.Create(TSProviderType.Actalis);
tsa.Username = "utente";
tsa.Password = "password";
Timestamp ts = tsa.CreateMarcaTemporale(file, HashAlgorithmNames.SHA256);
// …oppure incorporala nella firma (CAdES-T)
var sr = new SignatureRequest(pin) { SignatureTimestampProvider = tsa };
// Verifica firma + catena dei certificati, CRL e OCSP
bool ok = Pkcs7Utility.VerifyPkcs7(inFile, out var certs,
verifySignatureOnly: false);
// Naviga firme e controfirme; il nome è il CN del certificato
foreach (ISignature s in Pkcs7Utility.ExtractSignaturesFromPkcs7(inFile))
Console.WriteLine(X509Utility.GetDistinguishedNameField(s, "CN"));
using it.intersail.security.utility.providers.pades;
var pades = new PadesProvider();
if (pades.IsSigned(pdfFile))
foreach (ISignature sig in pades.ExtractSignatures(pdfFile, true))
Console.WriteLine(sig.SignerName + " — " + sig.VerifyResult);
// conforme a
// architettura
Per la maggior parte dei casi d'uso basta referenziare ZapCard.dll. I moduli si aggiungono solo quando servono le rispettive funzioni.
ZapCard.dll
core
Firma, verifica, marca temporale e accesso alle smart card. Unico riferimento obbligatorio.
ZapCard.Pades.dll
Provider per la firma e la verifica dei documenti PDF (PAdES).
ZapCard.CMDCard.dll
Plugin per la firma remota CMD, la firma «forte» via servizio.
ZapCard.Plugins.dll
Infrastruttura dei plugin di carta: supporto a dispositivi non nativi.
// edizioni
Sign
Firma dei documenti in CAdES / PKCS#7 e PAdES.
Timestamp
Marca temporale RFC 3161 dalle TSA accreditate.
Sign + Timestamp
Firma e marca temporale, più le funzioni web e l'interoperabilità COM.
Parliamo dei tuoi casi d'uso, dell'edizione adatta e dell'attivazione della licenza.