EJBCA接口调用---1

来源:互联网 发布:天猫魔盒哪个软件好 编辑:程序博客网 时间:2024/04/29 03:20

    由于网上关于EJBCA接口调用的文章几乎没有,只有自己看源码了。按照WIKI上所说的,看了一下。把看的结果分享一下。

    

Org/ejbca/ui/cli

Ø   ErrorAdminCommandException

 管理员命令出错后的异常

Ø  IAdminCommand

   执行管理员命令

Ø  IllegalAdminCommandException

        非法管理员命令异常

org/ejbca/ui/web

 /protocol

Ø  IHealtChecker

  一个接口。会被healthcheckservlet调用。

l   String healthCheck(boolean doSignTest, boolean doValidityTest);

Ø  RFC4387URL

  是一个枚举类。创建RFC4387URL和HTML的一些引用到一些URL上。

l   public String appendQueryToURL(String url, HashID hash, booleanisDelta)

 把RFC的查询添加到URL上

l   public String appendQueryToURL(String url, HashID hash)

 appendQueryToURL(url,  hash, false)

l   public String getRef(String url, HashID hash, boolean isDelta)

  以String的形式得到一个证书或者CRL

l   public String getRef(String url, HashID hash)

  重构。

 /pub

Ø  ServletDebug

   向浏览器客户端打印出调试信息

l public void ieCertFix(byte[] bA)ie证书修复(感觉用不上),             在这里面调用了RequestHelper里面的函数

RequestHelper.ieCertFormat(bA,tmpPrinter);

l   public void printDebugInfo()

 打印出调试信息

Ø  ServletUtils

   这里的函数在很多servelet中都会用到,整理成一个类,避免了以后重复使用。

l   public static void removeCacheHeaders(HttpServletResponse res)

  将response中的header给去掉。No-cache的header会让IE拒绝保存一个文件。

l   public static void addCacheHeaders(HttpServletResponse res)

 向response中添加一个header

   /cluster

Ø  IHealthCheck

   一个接口,有一个函数,并未实现

l   public String checkHealth(HttpServletRequest request)

Ø  CommonHealthCheck

 是一个抽象类

 继承自IHealthCheck

l   init()函数中初始化维护文件

主要有checkMaintenance()函数,检查主维护文件是否有错误

      checkMemory(),检查JVM内存

Ø  ValidationAuthorityHealthCheck

       继承自CommonHealthCheck

   检查HttpServletRequest的请求是否有问题

l   public void printDebugInfo()打印出调试信息

l   public void printMessage(String msg)打印出消息

l   public void printInsertLineBreaks(byte[] bA)打印出输入的信息

 

 

 

Ø  RequestHelper

  一个辅助类,帮助处理来自浏览器的证书请求,或者产生PKCS#10

l   public byte[] nsCertRequest(SignSessionLocal signsession, byte[] reqBytes,String username,  String password)处理证书请求(貌似是firefox)

                   @paramsignsession EJB session to signature bean.     

                   @paramreqBytes buffer holding the request from NS.    

                  @param username username in EJBCAfor authoriation.                       

                  @param password users password forauthorization.          返回包含了一定格式的字符,返回格式:

          <code> SignedPublicKeyAndChallenge::=SEQUENCE{

publicKeyAndChallenge PublicKeyAndChallenge,    

signatureAlgorithm AlgorithmIdentifier,

signature BIT STRING }</code>

公钥格式必须遵守RSAX.509.

l   public byte[] pkcs10CertRequest(SignSessionLocal signsession, byte[]b64Encoded,         String username,String password, int resulttype, boolean doSplitLines)处理PKCS10证书请求

@param signsession signsession to getcertificate from     

@param b64Encoded base64 encodedpkcs10 request       message     

@param username username ofrequesting user      

@param password passwordof requesting user      

@param resulttypeshould indicate if a PKCS7 or just the certificate is wanted.     

@param doSplitLines    

@return Base64 encoded byte[]  

 

l    public byte[]cvcCertRequest(SignSessionLocal signsession, byte[] b64Encoded, Stringusername, String password)处理CVC证书请求(我们用不上)

@param signsession signsession to getcertificate from     

@param b64Encodedbase64 encoded cvc request message   

@param username username ofrequesting user      

@param password passwordof requesting user      

@return Base64encoded byte[]

 

l   public static void sendNewCertToNSClient(byte[] certs,HttpServletResponse out)发送新的证书给NS客户端(用不到)

@param certs DER encoded certificatesto be installed in browser    

@param out output stream to send to

l   public static void sendNewB64File(byte[] b64cert,HttpServletResponse out, String filename, String beginKey, String endKey)通过二进制的发送新的证书给客户端,base64编码

 @param b64cert base64 encoded certificate tobe returned    

 @param out output stream to send to   

 @param filename filename sent as'Content-disposition'  header     

 @param beginKey, String contaitning keyinformation        

@param beginKey, String contaitning keyinformation

l   public static void sendNewB64Cert(byte[] b64cert,HttpServletResponse out, String beginKey, String endKey)重构,不提供文件名,文件名默认为"cert.pem"

l    public static voidsendNewX509CaCert(byte[] cert, HttpServletResponse out)将CA证书以二进制的形式返回,应该是X509证书

l   public static void setDefaultCharacterEncoding(HttpServletRequestrequest)设置默认的编码集

l   public static String getFileNameFromCertNoEnding(Certificate cacert,String defaultname)得到证书的文件名

Ø  CertificateView

   将X509证书的原始数据(二进制而文件)以网页的形式展示出来给用户看,格式化证书。

   通过一个Certificate的实例得到证书的各种信息

Ø  LimitLengthASN1Reader

    ASN1:一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。

这也是一个辅助类。

继承自ASN1InputStream,包bouncycastle中的一个类。

限制读入到ASN1格式数据的大小。

l   public byte[] readFirstASN1Object()

 把流中的数据读入到第一个ASN1对象中,并限制大小。

l   public int read()

                    得到读入数据的大小。

Ø  RevokedInfoView

   证书的撤销状态视图。

    这个类提供了查询关于证书撤销状态的所有信息。

   这么多类,我只是觉得最主要的功能都在RequestHelper中,这个类处理浏览器发来的请求,给用户生成证书。

  说明文件:http://download.csdn.net/detail/yilip/5574369

原创粉丝点击