⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readsignedmail.java

📁 用java实现的对电子邮件进行加密解密及签名的算法接口
💻 JAVA
字号:
package cn.edu.scut.smimeapi;

import java.security.Security;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.Message;
import javax.mail.internet.MimeMessage;


import org.bouncycastle.mail.smime.SMIMESigned;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

import cn.edu.scut.certmgr.*;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @version 1.0
 */
/**
 * a  class that reads a basic SMIME signed mail.
 */
public class ReadSignedMail extends ReceiveMail
{

 /** the method read a signed mail by the cert carried over the mail
  * Return a MimeBodyPart from the Signedmsg.
  * @Signedmsg the MimeMessage which has been signed!
  * throws Exception
 */
  public MimeBodyPart ReadSignedMailByPassedCert(MimeMessage Signedmsg)
  throws Exception
    {

      if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
      {
        throw new Exception(" It is not a Signed message!");
      }


      SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

      // extract the content
       MimeBodyPart content = s.getContent();


   try
   {
      System.out.println(verify(s));     //verify the signer
   }
   catch (Exception ex)
   {
    throw new IllegalStateException("verify the signer error:"+ex);
   }

   return content;

}

public MimeBodyPart GetSignedMailContent(MimeMessage Signedmsg)
    throws Exception
      {

        if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
        {
          throw new Exception(" It is not a Signed message!");
        }
         MimeBodyPart content=null;

        SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

        // extract the content
        content = s.getContent();

     return content;

}

 public MimeBodyPart GetSignedMailContent(MimeBodyPart Signedmsg)
     throws Exception
       {

         if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
         {
           throw new Exception(" It is not a Signed message!");
         }

         MimeBodyPart content=null;
         SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

         // extract the content
        content = s.getContent();

      return content;

}

 public String GetSignedMailValidator(MimeMessage Signedmsg)
    throws Exception
      {

        if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
        {
          throw new Exception(" It is not a Signed message!");
        }

        String result=null;
        SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

        result=this.verify(s);

     return result;

}

 public String GetSignedMailValidator(MimeBodyPart Signedmsg)
     throws Exception
       {

         if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
         {
           throw new Exception(" It is not a Signed message!");
         }

         String result=null;
         SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

       result=this.verify(s);

      return result;

}
    /** the method read a signed mail by the cert carried over the mail
     * Return a MimeBodyPart from the MimeBodyPart Signedmsg.
     * @Signedmsg the MimeBodyPart which has been signed!
     * throws Exception
    */

  public MimeBodyPart ReadSignedMailByPassedCert(MimeBodyPart Signedmsg)
   throws Exception
  {

         if (!Signedmsg.isMimeType("multipart/signed")) //not a signed menssage
         {
           throw new Exception(" It is not a Signed message!");
         }


         SMIMESigned s = new SMIMESigned((MimeMultipart) Signedmsg.getContent());

         // extract the content
          MimeBodyPart content = s.getContent();


         try
         {
            this.verify(s);     //verify the signer
         }
         catch (Exception ex)
         {
          throw new IllegalStateException("verify the signer error:"+ex);
         }

   return content;

 }

/*
 public static void main( String[] args)
        throws Exception
    {
       try
       {
         ReadSignedMail recmail=new ReadSignedMail();
         MimeBodyPart res=null;
         Message[] msg = recmail.getMail("202.38.212.1", "yhliu", "yhliu");
         System.out.println("您好,共收取到"+msg.length+"封邮件");
         for (int i = 0; i < msg.length; i++)   //msg.length
         {

             if (msg[i].isMimeType("multipart/signed"))//Signed message
             {
                System.out.println("您好,这是一封签名邮件");
                res=recmail.ReadSignedMailByPassedCert((MimeMessage)msg[i]);
                Object cont = res.getContent();
                System.out.println("邮件内容如下:");
            if (cont instanceof String)
            {

               System.out.println((String) cont);
            }
            else if (cont instanceof Multipart)
            {
                Multipart mp = (Multipart) cont;
                System.out.println(recmail.handleMultipart(mp));
            }

             }
             else
             {
               System.out.println("It is not a Signed message!");
             }

           System.out.println("---------------------------");

         }

        recmail.close();

       }

         catch(Exception ex)
        {
         System.out.println(ex);
        }

    }
*/



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -