private void btnVerify_Click(object sender, EventArgs e) { if (!File.Exists(txtFileToVerify.Text)) { MessageBox.Show("Please select the file containing the signed content"); return; } if (!File.Exists(txtSignatureFile.Text)) { MessageBox.Show("Please select the file containing the PKCS#7 Signature"); return; } try { using (Stream data = File.OpenRead(txtFileToVerify.Text), sig = File.OpenRead(txtSignatureFile.Text)) { SAPIWrapper.SignatureDetails details = SAPIWrapper.ValidateSignature(data, sig); lblSignerName.Text = details.SignerName; lblSigningTime.Text = details.SignatureTimeTicks == 0 ? "Not Available" : string.Format("{0}, {1}", new DateTime(details.SignatureTimeTicks).ToShortDateString(), new DateTime(details.SignatureTimeTicks).ToShortTimeString()); lblEmail.Text = details.SignerEmail; chkIsValid.Checked = details.isValid; lblShowCert.Tag = details.SignerCertificate; data.Close(); sig.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } }
private void btnSign_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtUsername.Text)) { MessageBox.Show("Please provide Username"); return; } if (string.IsNullOrEmpty(txtPassword.Text)) { MessageBox.Show("Please provide Password"); return; } if (!File.Exists(txtFile.Text)) { MessageBox.Show(string.Format("The file '{0}' doesn't exist!", txtFile.Text)); return; } try { using (Stream dataToSign = File.OpenRead(txtFile.Text), Signature = new MemoryStream()) { //Sign Stream data SAPIWrapper.SignStream( txtUsername.Text, txtDomain.Text, txtPassword.Text, dataToSign, Signature); //Close input stream dataToSign.Close(); //Save signature data to file SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Signature file (*.p7b)|*.p7b"; sfd.Title = "Please select the file to save the signature to"; sfd.FileName = Path.GetFileNameWithoutExtension(txtFile.Text) + ".p7b"; if (sfd.ShowDialog() != DialogResult.OK) { Signature.Close(); return; } File.WriteAllBytes(sfd.FileName, (Signature as MemoryStream).ToArray()); txtSignatureFile.Text = sfd.FileName; Signature.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } MessageBox.Show("The data was signed successfully"); }