Ich benutze iTextSharp 5.5.10, um signierte PDF zu generieren. Insbesondere brauche ich die LTV-Signatur. LTV kann mit CRL- und OCSP-Anfragen durchgeführt werden.Wie könnte ich OCSP-Antwort mit iTextSharp (LTV-Signatur) zwischenspeichern?
Ich habe es mit einem solchen Code:
IOcspClient ocspClient = new OcspClientBouncyCastle();
ICrlClient crlClient = new CrlClientOnline(myCert.Chain);
List<ICrlClient> lstCrlClients = new List<ICrlClient> { crlClient };
MakeSignature.SignDetached(sap, signature, this.myCert.Chain, lstCrlClients, ocspClient, null, 0, CryptoStandard.CMS);
Das Problem ist: Ich bin der Unterzeichnung viele, viele PDF (immer mit dem gleichen Zertifikat). Also, ich möchte nicht jedes Mal CRL und OCSP Anfrage machen, ich muss sie "cachen".
ich es geschafft, die CRL mit dieser Art von Code cachen (es basiert auf C# Memory):
private List<ICrlClient> GetCachedListCrlClient()
{
var key = "LstCrlClient";
List<ICrlClient> lstCrlClients = MyGlobalCachingProvider.GetItem<List<ICrlClient>>(key);
if (lstCrlClients == null)
{
lstCrlClients = new List<ICrlClient>();
for (int i = 0; i < myCert.Chain.Length; i++)
{
String crlUrl = CertificateUtil.GetCRLURL(myCert.Chain[i]);
if (crlUrl != null)
{
byte[] crlDownloaded = new System.Net.WebClient().DownloadData(crlUrl);
ICrlClient crlClient = new CrlClientOffline(crlDownloaded);
lstCrlClients.Add(crlClient);
}
}
MyGlobalCachingProvider.AddItem(key, lstCrlClients, DateTime.Now.AddHours(2));
}
return lstCrlClients;
}
ich aber nicht jede Lösung cachen Antworten OCSP finden. Hat jemand eine Ahnung?
OCSP-Antworten haben in der Regel nur eine sehr kurze Zeit zu leben. Daher ist es normalerweise nicht sinnvoll, sie zwischenzuspeichern. Wenn Sie sehr viele PDFs in kurzer Zeit signieren, sollten Sie eine "OcspClientOffline" ähnlich der "CrlClientOffline" implementieren. Schau dir den Code an, es ist trivial. – mkl
Danke. Deine Lösung ist in Ordnung. OCSP-Antworten sind jedoch nicht immer von kurzer Dauer: ein paar Minuten bis zu einigen Tagen. In meinem Fall sind es 10 Tage! Also ich denke, iText sollte uns eine Standardlösung für dieses Problem geben ... – AEC
10 Tage OCSP Antworten? Beeindruckend! Ok, in diesem Fall verstehe ich, dass du cachen willst. Ich bin nur an Lebenszeiten von nicht mehr als ein paar Minuten gewöhnt. – mkl