private static VerifySignatureResult ConvertToVerifySignatureResult(EsitoVerificaStatus status, FirmaDigitale.DettaglioFirmaDigitaleType d) { VerifySignatureResult vsr = new VerifySignatureResult(); List <DocsPaVO.documento.SignerInfo> siLst = new List <DocsPaVO.documento.SignerInfo>(); if (d.datiFirmatari != null) { foreach (FirmaDigitale.FirmatarioType ft in d.datiFirmatari) { DocsPaVO.documento.SignerInfo si = new DocsPaVO.documento.SignerInfo(); si.CertificateInfo = new DocsPaVO.documento.CertificateInfo { ValidFromDate = ft.firmatario.dataInizioValiditaCert, ValidToDate = ft.firmatario.dataFineValiditaCert, RevocationDate = ft.firmatario.dataRevocaCertificato, RevocationStatus = (int)status, RevocationStatusDescription = status.ToString(), IssuerName = "CN=" + ft.firmatario.cnCertAuthority, SignatureAlgorithm = "N.D." }; si.SubjectInfo = new DocsPaVO.documento.SubjectInfo { CodiceFiscale = ft.firmatario.codiceFiscale, CommonName = ft.firmatario.commonName, CertId = ft.firmatario.distinguishName, Organizzazione = ft.firmatario.organizzazione, SerialNumber = ft.firmatario.serialNumber, }; si.SignatureAlgorithm = convertOidtoString(ft.firmatario.digestAlgorithm); siLst.Add(si); } } List <DocsPaVO.documento.PKCS7Document> p7docsLst = new List <DocsPaVO.documento.PKCS7Document>(); DocsPaVO.documento.PKCS7Document p7doc = new DocsPaVO.documento.PKCS7Document { SignersInfo = siLst.ToArray(), DocumentFileName = null, Level = 0 }; p7docsLst.Add(p7doc); vsr.PKCS7Documents = p7docsLst.ToArray(); vsr.StatusCode = (int)status; vsr.StatusDescription = status.ToString(); vsr.CRLOnlineCheck = true; return(vsr); }
private VerifySignatureResult ConvertToVerifySignatureResult(Return actalisReturn) { VerifySignatureResult vsr = new VerifySignatureResult(); try { List <DocsPaVO.documento.SignerInfo> siLst = null; SignerInfo[] signersInfo = null; if (actalisReturn.signers != null) { siLst = ConvertFromActalisSigner(actalisReturn.signers); signersInfo = siLst.ToArray(); } List <DocsPaVO.documento.PKCS7Document> p7docsLst = new List <DocsPaVO.documento.PKCS7Document>(); DocsPaVO.documento.PKCS7Document p7doc = new DocsPaVO.documento.PKCS7Document { SignersInfo = signersInfo, DocumentFileName = null, Level = 0 }; p7docsLst.Add(p7doc); vsr.PKCS7Documents = p7docsLst.ToArray(); /// ATTNEZIONE DA GESTIRE /// actalisReturn.error quando tutto va bene torna OK, mentre non dovrebbe tornare nulla /// volendo possiamo mettere che se torna OK, la stringa in actalisReturn.error viene eliminata. /// estratto dalla documentazione VOL Pagina 4 /// Error 1..1 Stringa Eventuale codice di errore. Vuoto se non si è verificato nessun errore nella validazione. /// decommentare codice sotto per risolvere il bug /* * if (actalisReturn.error.Equals ("OK")) * actalisReturn.error=""; */ vsr.StatusCode = String.IsNullOrEmpty(actalisReturn.error) ? 0 : 1; vsr.StatusDescription = actalisReturn.error; vsr.CRLOnlineCheck = true; } catch (Exception ex) { string err = string.Format("Errore in toCertificateInfo {0} stk {1}", ex.Message, ex.StackTrace); logger.ErrorFormat(err); vsr.StatusDescription = err; vsr.StatusCode = -1; } return(vsr); }
private static VerifySignatureResult ConvertToVerifySignatureResult(EsitoVerificaStatus status) { VerifySignatureResult vsr = new VerifySignatureResult(); List <DocsPaVO.documento.SignerInfo> siLst = new List <DocsPaVO.documento.SignerInfo>(); { DocsPaVO.documento.SignerInfo si = new DocsPaVO.documento.SignerInfo(); si.CertificateInfo = new DocsPaVO.documento.CertificateInfo { ValidFromDate = DateTime.Parse("2011-03-25T13:57:54+01:00"), ValidToDate = DateTime.Parse("2014-03-25T00:00:00+01:00"), RevocationStatus = (int)EsitoVerificaStatus.Valid, RevocationStatusDescription = EsitoVerificaStatus.Valid.ToString() }; si.SubjectInfo = new DocsPaVO.documento.SubjectInfo { CodiceFiscale = "TTVLFF44P28D969E", CommonName = "Elio Raffaele Ottaviano", CertId = "2011500471127", }; siLst.Add(si); } { DocsPaVO.documento.SignerInfo si = new DocsPaVO.documento.SignerInfo(); si.CertificateInfo = new DocsPaVO.documento.CertificateInfo { ValidFromDate = DateTime.Parse("2008-09-01T14:09:40+02:00"), ValidToDate = DateTime.Parse("2013-12-31T18:00:00+01:00"), RevocationDate = DateTime.Parse("2011-01-21T12:48:17+01:00"), RevocationStatus = (int)EsitoVerificaStatus.Revoked, RevocationStatusDescription = EsitoVerificaStatus.Revoked.ToString() }; si.SubjectInfo = new DocsPaVO.documento.SubjectInfo { CodiceFiscale = "TTVLFF44P28D969E", CommonName = "ELIO RAFFAELE OTTAVIANO", CertId = "12202828:4330:1", }; siLst.Add(si); } List <DocsPaVO.documento.PKCS7Document> p7docsLst = new List <DocsPaVO.documento.PKCS7Document>(); DocsPaVO.documento.PKCS7Document p7doc = new DocsPaVO.documento.PKCS7Document { SignersInfo = siLst.ToArray(), DocumentFileName = null, Level = 0 }; p7docsLst.Add(p7doc); vsr.PKCS7Documents = p7docsLst.ToArray(); vsr.StatusCode = (int)EsitoVerificaStatus.Revoked; vsr.StatusDescription = status.ToString(); vsr.CRLOnlineCheck = true; return(vsr); }
private static VerifySignatureResult ConvertToVerifySignatureResultUsingInternalStructures(EsitoVerificaStatus status, FirmaDigitale.DettaglioFirmaDigitaleType d) { VerifySignatureResult vsr = new VerifySignatureResult(); List <DocsPaVO.documento.SignerInfo> siLst = new List <DocsPaVO.documento.SignerInfo>(); string verbosesgb = ConfigurationManager.AppSettings["VERBOSEDEBUG"]; bool verboseDebug = false; Boolean.TryParse(verbosesgb, out verboseDebug); if (verboseDebug) { logger.Debug(d.datiGeneraliVerifica); } if (d.fileMarcatoSpecified) { if (d.dataVerificaFirmaSpecified) { logger.InfoFormat("data verifica firma {0}", d.dataVerificaFirma); } if (d.fileMarcato) { logger.Debug("Marcato"); TSInfo ts = new TSInfo(); if (d.marcaDetached != null) { logger.Debug("marcaDetached !=null"); //Gestire la marca //logger.DebugFormat("TSANameIssuer [{0}]", d.marcaDetached.TSANameIssuer); //logger.DebugFormat("TSANameSubject [{0}]", d.marcaDetached.TSANameSubject); //logger.DebugFormat("TSimprint [{0}]", d.marcaDetached.TSimprint); //logger.DebugFormat("TSserialNumber [{0}]", d.marcaDetached.TSserialNumber); if (!String.IsNullOrEmpty(d.marcaDetached.TSANameIssuer)) { ts.TSANameIssuer = d.marcaDetached.TSANameIssuer; } if (!String.IsNullOrEmpty(d.marcaDetached.TSANameSubject)) { ts.TSANameSubject = d.marcaDetached.TSANameSubject; } if (!String.IsNullOrEmpty(d.marcaDetached.TSimprint)) { ts.TSimprint = d.marcaDetached.TSimprint; } if (!String.IsNullOrEmpty(d.marcaDetached.TSserialNumber)) { ts.TSserialNumber = d.marcaDetached.TSserialNumber; } if (d.marcaDetached.TSdateTimeSpecified) { ts.TSdateTime = d.marcaDetached.TSdateTime; } if (d.marcaDetached.dataFineValiditaCertSpecified) { ts.dataFineValiditaCert = d.marcaDetached.dataFineValiditaCert; } if (d.marcaDetached.dataInizioValiditaCertSpecified) { ts.dataInizioValiditaCert = d.marcaDetached.dataInizioValiditaCert; } } else { //default nel caso la try sotto desse errore ts.TSANameIssuer = "Marca non Detached, dati non disponibili"; //se questo dato ce l'ho lo valido if (d.dataVerificaFirmaSpecified) { ts.TSdateTime = d.dataVerificaFirma; } } } else { } } if (d.datiFirmatari != null) { foreach (FirmaDigitale.FirmatarioType ft in d.datiFirmatari) { //firmatari DocsPaVO.documento.SignerInfo si = ExtractSignerInfo(status, ft.firmatario, ft.marcaFirma); //controfirmatari if (ft.controfirmatario != null) { List <DocsPaVO.documento.SignerInfo> csiLst = new List <DocsPaVO.documento.SignerInfo>(); foreach (FirmaDigitale.FirmatarioTypeControfirmatario cft in ft.controfirmatario) { DocsPaVO.documento.SignerInfo csi = ExtractSignerInfo(status, cft.firma, cft.marca); csi.isCountersigner = true; csiLst.Add(csi); } if (csiLst.Count > 0) { si.counterSignatures = csiLst.ToArray(); } } siLst.Add(si); } } List <DocsPaVO.documento.PKCS7Document> p7docsLst = new List <DocsPaVO.documento.PKCS7Document>(); DocsPaVO.documento.PKCS7Document p7doc = new DocsPaVO.documento.PKCS7Document { SignersInfo = siLst.ToArray(), DocumentFileName = null, Level = 0 }; p7docsLst.Add(p7doc); vsr.PKCS7Documents = p7docsLst.ToArray(); vsr.CRLOnlineCheck = true; return(vsr); }