public string upgradeToEST(String signedEReceteFilePath) { LisansHelper.loadLicense(); String retSignedXmlPath = null; try { //create context with working dir string currentDirectory = Directory.GetCurrentDirectory(); Context context = new Context(currentDirectory); XMLSignature signature = XMLSignature.parse(new FileDocument(new FileInfo(signedEReceteFilePath)), context); signature.upgradeToXAdES_T(); FileInfo sourceFileInfo = new FileInfo(signedEReceteFilePath); string destDirPath = sourceFileInfo.Directory.FullName; retSignedXmlPath = destDirPath + "/" + sourceFileInfo.Name.Replace(".xsig", "_EST.xsig"); FileStream signatureFileStream = new FileStream(retSignedXmlPath, FileMode.Create); signature.write(signatureFileStream); signatureFileStream.Close(); } catch (XMLSignatureException exc) { // cant create signature MesajiIsle("Hata Oluştu." + exc.Message, 1); } catch (Exception exc) { // probably couldn't write to the file MesajiIsle("Hata Oluştu." + exc.Message, 1); } return(retSignedXmlPath); }
public string addSerialSignature(String signedEReceteFilePath) { LisansHelper.loadLicense(); String retSignedXmlPath = null; try { //create context with working dir string currentDirectory = Directory.GetCurrentDirectory(); Context context = new Context(currentDirectory); XMLSignature signature = XMLSignature.parse(new FileDocument(new FileInfo(signedEReceteFilePath)), context); // create counter signature XMLSignature counterSignature = signature.createCounterSignature(); counterSignature.SigningTime = DateTime.Now; // sign // add certificate to show who signed the document KeyOrSmartCardSignManager keyOrSmartCardSignManager = KeyOrSmartCardSignManager.Instance; ECertificate signingCert = keyOrSmartCardSignManager.getSigningCertificate(); counterSignature.addKeyInfo(signingCert); // now sign it by using smart card // now sign it BaseSigner baseSigner = keyOrSmartCardSignManager.getSigner(signingCert); counterSignature.sign(baseSigner); FileInfo sourceFileInfo = new FileInfo(signedEReceteFilePath); string destDirPath = sourceFileInfo.Directory.FullName; retSignedXmlPath = destDirPath + "/" + sourceFileInfo.Name.Replace(".xsig", "_Counter.xsig"); FileStream signatureFileStream = new FileStream(retSignedXmlPath, FileMode.Create); signature.write(signatureFileStream); signatureFileStream.Close(); } catch (XMLSignatureException exc) { // cant create signature MesajiIsle("Hata Oluştu." + exc.Message, 1); } catch (Exception exc) { // probably couldn't write to the file MesajiIsle("Hata Oluştu." + exc.Message, 1); } return(retSignedXmlPath); }
public string verifySignature(String signedEReceteFilePath) { String retStr = null; try { //create context with working dir string currentDirectory = Directory.GetCurrentDirectory(); Context context = new Context(currentDirectory); XMLSignature signature = XMLSignature.parse(new FileDocument(new FileInfo(signedEReceteFilePath)), context); ValidationResult vr = signature.verify(); System.Console.Out.WriteLine(vr.toXml()); retStr = vr.toXml(); //Seri imzalar için /* * UnsignedSignatureProperties usp = signature.QualifyingProperties.UnsignedSignatureProperties; * if (usp != null) * { * IList<XMLSignature> allCounterSignatures = usp.AllCounterSignatures; * foreach (XMLSignature counterSignature in allCounterSignatures) * { * ValidationResult counterResult = counterSignature.verify(); * System.Console.Out.WriteLine(counterResult.toXml()); * } * }*/ } catch (XMLSignatureException exc) { // cant create signature MesajiIsle("Hata Oluştu." + exc.Message, 1); } catch (Exception exc) { // probably couldn't write to the file MesajiIsle("Hata Oluştu." + exc.Message, 1); } return(retStr); }