亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? encryptwithhmac.java

?? 一個java開發的非常全面的關于證書發放
?? JAVA
字號:
/*
  Name:         EncryptWithHMAC.java
  Licensing:    LGPL

  API:          Sun (http://java.sun.com) JCE 1.2.2 API (cleanroom implementation by Bouncy Castle)
  Provider:     Bouncy Castle (http://www.bouncycastle.org)

  Disclaimer:

  COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND,
  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE
  IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
  RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE
  PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR)
  ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
  CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED
  HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
*/

package net.sourceforge.jcetaglib.taglib.crypto;

import net.sourceforge.jcetaglib.lib.CertTools;
import net.sourceforge.jcetaglib.lib.Clean;
import net.sourceforge.jcetaglib.lib.Hybrid;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.cert.X509Certificate;

/**
 * JSP tag used for encrypting data with a HMAC code
 *
 * @jsp.tag
 * name="encryptwithhmac"
 * display-name="EncryptWithHMAC"
 * body-content="JSP"
 * example="
 *		<jce:encryptwithhmac

 * 			var=\"foralice\"

 *			value=\"<%= new StringBuffer(\"Encrypt this string\") %>\"

 *			scope=\"page\"

 *			recpemfile=\"C:/keystores/alice.cert\"/>"
 *
 * description="JSP tag used for encrypting data with a HMAC code"
 *
 * @author Gert Van Ham
 * @author hamgert@users.sourceforge.net
 * @author http://jcetaglib.sourceforge.net
 * @version $Id: EncryptWithHMAC.java,v 1.5 2004/04/15 07:28:35 hamgert Exp $
 */
public class EncryptWithHMAC extends BodyTagSupport {
    private static final String PAGE = "page";
    private static final String REQUEST = "request";
    private static final String SESSION = "session";
    private static final String APPLICATION = "application";

    private StringBuffer value; // tag attribute
    private String var;     // tag attribute
    private int scope = PageContext.PAGE_SCOPE;      // tag attribute

    private String file;                // tag attribute
    private String newfile;                // tag attribute

    private String algorithm = "AES";          // tag attribute
    private String seed;          							// tag attribute
    private int strength = 256;             // tag attribute
    private String mode = "CBC";               // tag attribute
    private String padding = "PKCS7Padding";   // tag attribute

    /* Attributes for receiver's certificate */

    // receiver's certificate as string
    private String recpemstring;             // tag attribute

    // ... OR as PEM file
    private String recpemfile;              // tag attribute

    private StringBuffer input;    // what we'll store in scope:var
    private StringBuffer output;   // return text

    public static int getScope(String scope) {
        int ret = PageContext.PAGE_SCOPE; // default

        if (REQUEST.equalsIgnoreCase(scope))
            ret = PageContext.REQUEST_SCOPE;
        else if (SESSION.equalsIgnoreCase(scope))
            ret = PageContext.SESSION_SCOPE;
        else if (APPLICATION.equalsIgnoreCase(scope))
            ret = PageContext.APPLICATION_SCOPE;
        else if (PAGE.equalsIgnoreCase(scope))
            ret = PageContext.PAGE_SCOPE;

        return ret;
    } //getScope()

    public int doEndTag() throws JspException {
        X509Certificate reccert = null;

        // determine the value by...
        if (value != null) {
            // ... reading our attribute
            input = value;
        } else {
            // ... retrieving and trimming our body
            if (bodyContent == null || bodyContent.getString() == null) {
                input = new StringBuffer("");
            } else {
                input = new StringBuffer(bodyContent.getString().trim());
            }
        }

        // loading the receiver's public key
        try {
            if (recpemfile == null || recpemfile == "") {
                // use PEM string
                InputStream pemstream = new ByteArrayInputStream(recpemstring.getBytes());
                reccert = CertTools.getCertfromPEM(pemstream);
            } else {
                // use PEM store
                reccert = CertTools.getCertfromPEM(recpemfile);
            }
        } catch (Exception e) {
            throw new JspException("JCE Exception - PEM could not be loaded: " + e.getMessage(), e);
        }

        // encrypt with MAC
        try {
            if (file != null) {
                if (seed == null) {
                    Hybrid.encryptFileWithHMAC(file
                            , newfile
                            , reccert.getPublicKey()
                            , algorithm
                            , null
                            , strength
                            , mode
                            , padding);
                } else {
                    Hybrid.encryptFileWithHMAC(file
                            , newfile
                            , reccert.getPublicKey()
                            , algorithm
                            , seed.getBytes()
                            , strength
                            , mode
                            , padding);
                }
            } else {
                if (seed == null) {
                    output = Hybrid.encryptWithHMAC(input
                            , reccert.getPublicKey()
                            , algorithm
                            , null
                            , strength
                            , mode
                            , padding);
                } else {
                    output = Hybrid.encryptWithHMAC(input
                            , reccert.getPublicKey()
                            , algorithm
                            , seed.getBytes()
                            , strength
                            , mode
                            , padding);
                }
            }
        } catch (Exception e) {
            throw new JspException("JCE Exception: " + e.getMessage(), e);
        }

        // decide what to do with the result
        if (var != null) {
            if (output != null) {
                pageContext.setAttribute(var, output, scope);
            }
        } else {
            if (file == null || file == "") {
                if (bodyContent != null) {
                    bodyContent.clearBody();
                }

                try {
                    JspWriter w = pageContext.getOut();
                    w.print(output);
                } catch (IOException ex) {
                    throw new JspException(ex.getMessage(), ex);
                }
            }
        }

        return EVAL_PAGE;
    }

    public void release() {
        // Cleanup all sensitive information
        Clean.blank(value);
        Clean.blank(input);
        Clean.blank(output);

        super.release();
    } //release()

    /**
     * @jsp.attribute
     *     description="Optional attribute, the string to encrypt or decrypt. The body of the tag will be taken if omitted"
     *     type="java.lang.StringBuffer"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setValue(StringBuffer value) {
        this.value = value;
    }

    public StringBuffer getValue() {
        return value;
    }

    /**
     * @jsp.attribute
     *     description="Optional attribute, variable to store the encrypted string. The string will be printed if omitted"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="false"
     */
    public void setVar(String var) {
        this.var = var;
    }

    public String getVar() {
        return var;
    }

    /**
     * @jsp.attribute
     *     description="Scope of the 'var' attribute. Can be 'page', 'session', 'request' or 'application'. Default is 'page'"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="false"
     */
    public void setScope(String scope) {
        this.scope = getScope(scope);
    }

    /**
     * @jsp.attribute
     *     description="The key algorithm. Default is 'AES'"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setAlgorithm(String algorithm) {
        this.algorithm = algorithm;
    }

    /**
     * @jsp.attribute
     *     description="Optional seed for SecureRandom "
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setSeed(String seed) {
        this.seed = seed;
    }

    /**
     * @jsp.attribute
     *     description="The key size in bits (integer value). Values depends on the used algorithm (see next paragraph). Default is 256 (for AES)"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setStrength(int strength) {
        this.strength = strength;
    }

    /**
     * @jsp.attribute
     *     description="Encryption mode. Default is 'CBC'"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setMode(String mode) {
        this.mode = mode;
    }

    /**
     * @jsp.attribute
     *     description="Padding scheme. Default is 'PKCS7Padding'"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setPadding(String padding) {
        this.padding = padding;
    }

    /**
     * @jsp.attribute
     *     description="The receiver's certificate stored in a PEM file"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setRecpemfile(String recpemfile) {
        this.recpemfile = recpemfile;
    }

    /**
     * @jsp.attribute
     *     description="The receiver's certificate as a PEM formatted string"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setRecpemstring(String recpemstring) {
        this.recpemstring = recpemstring;
    }

    /**
     * @jsp.attribute
     *     description="Encrypts a file instead of a string"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setFile(String file) {
        this.file = file;
    }

    /**
     * @jsp.attribute
     *     description="File(name) to store the encrypted data"
     *     type="java.lang.String"
     *     required="false"
     *     rtexprvalue="true"
     */
    public void setNewfile(String newfile) {
        this.newfile = newfile;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色猫猫国产区一区二在线视频| 欧美精品自拍偷拍| 欧美群妇大交群中文字幕| 久久久久久一二三区| 日韩经典中文字幕一区| 99天天综合性| 欧美激情综合五月色丁香| 全部av―极品视觉盛宴亚洲| 99国产精品国产精品久久| 久久久久久久久久久久电影 | 国产精品不卡一区二区三区| 亚洲成人久久影院| 在线影院国内精品| 亚洲日本一区二区三区| 丁香一区二区三区| 日韩欧美色综合| 久久精品国产成人一区二区三区| 欧美日韩国产综合久久| 亚洲国产精品精华液网站| 一本久久a久久免费精品不卡| 日本一区二区三区高清不卡 | 久久精子c满五个校花| 精品一区二区三区的国产在线播放| 欧美亚洲高清一区| 亚洲一级二级在线| 97精品久久久午夜一区二区三区 | 精品在线免费观看| 日韩写真欧美这视频| 日韩**一区毛片| 日韩小视频在线观看专区| 蜜桃av一区二区| 2021中文字幕一区亚洲| 丁香另类激情小说| 波波电影院一区二区三区| 日本一区二区久久| 不卡av免费在线观看| 国产精品国产三级国产有无不卡| 成人一级片在线观看| 欧美激情综合网| 色综合久久88色综合天天6| 亚洲欧美日韩国产综合在线| 在线这里只有精品| 七七婷婷婷婷精品国产| www国产亚洲精品久久麻豆| 国产精品亚洲综合一区在线观看| 国产精品网站一区| 色诱视频网站一区| 青青草97国产精品免费观看 | 欧美日韩一区二区电影| 丝袜美腿亚洲一区二区图片| 日韩欧美一区二区三区在线| 国产精品白丝jk白祙喷水网站| 中文字幕一区日韩精品欧美| 91亚洲午夜精品久久久久久| 五月婷婷色综合| 久久久精品国产免大香伊| 91美女视频网站| 日韩1区2区3区| 亚洲欧美怡红院| 6080午夜不卡| av激情成人网| 麻豆国产精品一区二区三区| 中文成人综合网| 91精品国产综合久久婷婷香蕉| 国产精品影视网| 中文字幕在线观看一区| 欧美性极品少妇| 激情综合五月婷婷| 有码一区二区三区| 久久久www免费人成精品| 欧美综合一区二区| 国产精品原创巨作av| 亚欧色一区w666天堂| 国产色91在线| 欧美一级二级三级乱码| av电影天堂一区二区在线观看| 日韩国产一二三区| 亚洲欧美日韩在线播放| 精品成a人在线观看| 欧洲av在线精品| 成人app软件下载大全免费| 蜜乳av一区二区| 一区二区三区四区蜜桃| 国产精品污www在线观看| 日韩天堂在线观看| 欧美伊人久久大香线蕉综合69| 国产精品99久久久久久似苏梦涵| 午夜精品福利一区二区三区蜜桃| 国产精品福利一区| 欧美一级专区免费大片| 欧美日韩高清影院| 成人一级片网址| 精品一区二区三区的国产在线播放 | 欧美美女激情18p| 91色porny| av亚洲精华国产精华精华| 久久精品国产网站| 日本网站在线观看一区二区三区 | 久久99国产精品尤物| 日韩影院在线观看| 亚洲国产一区视频| 亚洲最大成人网4388xx| 亚洲视频1区2区| 国产精品国产三级国产aⅴ入口| 国产人久久人人人人爽| 精品日韩一区二区三区| 欧美大黄免费观看| 日韩精品中文字幕在线不卡尤物| 91麻豆精品国产91久久久久久 | 一区二区成人在线观看| 中文字幕一区在线观看视频| 国产欧美精品国产国产专区 | 久久久综合九色合综国产精品| 欧美一区二区精品久久911| 欧美卡1卡2卡| 欧美一级高清大全免费观看| 日韩欧美一区二区三区在线| 精品少妇一区二区| 国产欧美日韩在线看| 国产精品久久看| 亚洲午夜免费电影| 美洲天堂一区二卡三卡四卡视频| 美国毛片一区二区| 国产毛片一区二区| av资源网一区| 欧美午夜宅男影院| 日韩一区二区电影| 久久久久久久久久久久久夜| 国产精品国产三级国产专播品爱网| 国产精品久久久久9999吃药| 一区二区三区电影在线播| 五月综合激情日本mⅴ| 韩国视频一区二区| 91亚洲精品久久久蜜桃网站| 欧美视频中文字幕| 精品国产青草久久久久福利| 国产精品进线69影院| 天天综合色天天| 国产黑丝在线一区二区三区| 91蜜桃网址入口| 日韩一区二区影院| 中文字幕一区在线| 男女男精品网站| 91首页免费视频| 91精品国产91久久久久久最新毛片| 久久伊人蜜桃av一区二区| 亚洲男人的天堂一区二区| 蜜臀av在线播放一区二区三区| 丰满少妇久久久久久久| 欧美性一二三区| 久久久99精品免费观看| 亚洲图片欧美综合| 国产精品77777竹菊影视小说| 色吧成人激情小说| 国产人妖乱国产精品人妖| 亚洲国产aⅴ成人精品无吗| 国产99久久久精品| 91精品欧美一区二区三区综合在| 日本一区二区免费在线| 婷婷中文字幕一区三区| 国产91精品露脸国语对白| 欧美久久久久免费| 亚洲欧美日韩久久| 国产盗摄一区二区三区| 日韩欧美视频在线| 亚洲国产一区视频| 97久久超碰国产精品电影| 久久九九全国免费| 六月丁香婷婷色狠狠久久| 在线观看网站黄不卡| 国产精品无遮挡| 国产精品资源在线看| 日韩精品一区二区三区视频 | 91麻豆国产在线观看| 久久久久综合网| 久久99国产精品久久99| 欧美日韩精品一区二区天天拍小说| 中文成人综合网| 粉嫩av一区二区三区在线播放| 精品国产99国产精品| 日韩精品亚洲一区| 欧美日韩免费观看一区三区| 亚洲视频在线观看一区| 国产99久久久久久免费看农村| 精品av综合导航| 精品一区二区免费视频| 日韩美女天天操| 玖玖九九国产精品| 日韩精品一区二区在线| 美女一区二区三区在线观看| 91精品国产色综合久久不卡蜜臀| 亚洲成人av在线电影| 欧美图片一区二区三区| 亚洲免费资源在线播放| 色婷婷综合五月| 亚洲自拍偷拍九九九| 91成人在线免费观看| 一区二区三区资源| 在线精品视频一区二区| 夜夜嗨av一区二区三区网页 |