private void getsignature(string Email)
{
//Extract signature
MIME.MimeMessage aMimeMessage = new MIME.MimeMessage();
aMimeMessage.LoadBody(Email);
string boundary = aMimeMessage.GetBoundary();
ArrayList bodylist = new ArrayList();
aMimeMessage.GetBodyPartList(bodylist);
MimeBody ab = (MimeBody)bodylist[bodylist.Count-1];
string prueba = ab.GetRawContent();
//Extract signed part
int start = Email.IndexOf("Content-Type:");
start = Email.IndexOf("Content-Type:",start+1);
string signedcontent = Email.Substring(start);
int last = signedcontent.LastIndexOf(boundary);
signedcontent = signedcontent.Remove(last - 2);
last = signedcontent.LastIndexOf(boundary);
signedcontent = signedcontent.Remove(last - 4);
byte[] bytFirma = Convert.FromBase64String(prueba);
ContentInfo objContent = new ContentInfo(Encoding.ASCII.GetBytes(signedcontent));
SignedCms objDatos = new SignedCms(objContent,true);
objDatos.Decode(bytFirma);
try
{
objDatos.CheckSignature(true);
MessageBox.Show("Ok - La firma concuerda con los datos");
MessageBox.Show(Encoding.ASCII.GetString(objDatos.ContentInfo.Content));
}
catch
{
MessageBox.Show("Error - La firma no concuerda con los datos");
}
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario