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

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

?? dhkeyagreement.java

?? 一個java開發的非常全面的關于證書發放
?? JAVA
字號:
/*
  Name:         DHKeyAgreement.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.

  (C) Copyright 2003 Gert Van Ham
*/

package net.sourceforge.jcetaglib.lib;

import org.bouncycastle.jce.provider.BouncyCastleProvider;

import javax.crypto.KeyAgreement;
import javax.crypto.spec.DHParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.math.BigInteger;
import java.security.*;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.X509EncodedKeySpec;

/**
 * Diffie-Hellman key agreement
 *
 * @author Gert Van Ham
 * @author hamgert@users.sourceforge.net
 * @author http://jcetaglib.sourceforge.net
 * @version $Id: DHKeyAgreement.java,v 1.3 2004/04/15 07:28:25 hamgert Exp $
 */
public class DHKeyAgreement {
    /**
     *	Static variables for 1024 bit Diffie-Hellman algorithm.
     *
     *	This is required to have matching moduli between client
     *	and server. The values are unimportant, they simply must match.
     *	Ideally, everyone would agree on standard moduli, like SKIP,
     *	the Simple Key management for Internet Protocols spec.
     *
     *	You can get more info from http://www.skip.org
     */
    private static final byte SKIP_1024_MODULUS_BYTES[] = {
        (byte) 0xF4, (byte) 0x88, (byte) 0xFD, (byte) 0x58,
        (byte) 0x4E, (byte) 0x49, (byte) 0xDB, (byte) 0xCD,
        (byte) 0x20, (byte) 0xB4, (byte) 0x9D, (byte) 0xE4,
        (byte) 0x91, (byte) 0x07, (byte) 0x36, (byte) 0x6B,
        (byte) 0x33, (byte) 0x6C, (byte) 0x38, (byte) 0x0D,
        (byte) 0x45, (byte) 0x1D, (byte) 0x0F, (byte) 0x7C,
        (byte) 0x88, (byte) 0xB3, (byte) 0x1C, (byte) 0x7C,
        (byte) 0x5B, (byte) 0x2D, (byte) 0x8E, (byte) 0xF6,
        (byte) 0xF3, (byte) 0xC9, (byte) 0x23, (byte) 0xC0,
        (byte) 0x43, (byte) 0xF0, (byte) 0xA5, (byte) 0x5B,
        (byte) 0x18, (byte) 0x8D, (byte) 0x8E, (byte) 0xBB,
        (byte) 0x55, (byte) 0x8C, (byte) 0xB8, (byte) 0x5D,
        (byte) 0x38, (byte) 0xD3, (byte) 0x34, (byte) 0xFD,
        (byte) 0x7C, (byte) 0x17, (byte) 0x57, (byte) 0x43,
        (byte) 0xA3, (byte) 0x1D, (byte) 0x18, (byte) 0x6C,
        (byte) 0xDE, (byte) 0x33, (byte) 0x21, (byte) 0x2C,
        (byte) 0xB5, (byte) 0x2A, (byte) 0xFF, (byte) 0x3C,
        (byte) 0xE1, (byte) 0xB1, (byte) 0x29, (byte) 0x40,
        (byte) 0x18, (byte) 0x11, (byte) 0x8D, (byte) 0x7C,
        (byte) 0x84, (byte) 0xA7, (byte) 0x0A, (byte) 0x72,
        (byte) 0xD6, (byte) 0x86, (byte) 0xC4, (byte) 0x03,
        (byte) 0x19, (byte) 0xC8, (byte) 0x07, (byte) 0x29,
        (byte) 0x7A, (byte) 0xCA, (byte) 0x95, (byte) 0x0C,
        (byte) 0xD9, (byte) 0x96, (byte) 0x9F, (byte) 0xAB,
        (byte) 0xD0, (byte) 0x0A, (byte) 0x50, (byte) 0x9B,
        (byte) 0x02, (byte) 0x46, (byte) 0xD3, (byte) 0x08,
        (byte) 0x3D, (byte) 0x66, (byte) 0xA4, (byte) 0x5D,
        (byte) 0x41, (byte) 0x9F, (byte) 0x9C, (byte) 0x7C,
        (byte) 0xBD, (byte) 0x89, (byte) 0x4B, (byte) 0x22,
        (byte) 0x19, (byte) 0x26, (byte) 0xBA, (byte) 0xAB,
        (byte) 0xA2, (byte) 0x5E, (byte) 0xC3, (byte) 0x55,
        (byte) 0xE9, (byte) 0x2F, (byte) 0x78, (byte) 0xC7
    };

    /**
     *	Transform the representation above to a BigInteger.
     */
    private static final BigInteger MODULUS = new BigInteger
            (1, SKIP_1024_MODULUS_BYTES);

    /**
     *	The Base we're going to use is 2, as defined in SKIP.
     */
    private static final BigInteger BASE = BigInteger.valueOf(2);

    /**
     *	This wraps the parameters above into one object.
     */
    private static final DHParameterSpec PARAMETER_SPEC =
            new DHParameterSpec(MODULUS, BASE);

    /**
     * Generate DH keypair based on SKIP Modulus
     *
     * @return DH keypair
     * @throws NoSuchAlgorithmException unknown algorithm
     * @throws NoSuchProviderException unknown provider
     * @throws InvalidAlgorithmParameterException
     */
    public static KeyPair generateDHKeyPair()
            throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException {

        Security.addProvider(new BouncyCastleProvider());

        KeyPairGenerator g = KeyPairGenerator.getInstance("DH", "BC");
        g.initialize(PARAMETER_SPEC);

        return g.generateKeyPair();
    }

    /**
     * Create session key from DH keypair
     *
     * @param pubkey public key other party
     * @param privkey own private key
     * @param algorithm block cipher algorithm
     * @param length block cipher length in bits
     * @return session key
     * @throws NoSuchAlgorithmException unknown algorithm
     * @throws InvalidKeyException key is not valid
     */
    public static Key generateSessionKey(PublicKey pubkey
                                         , PrivateKey privkey
                                         , String algorithm
                                         , int length) throws NoSuchAlgorithmException, InvalidKeyException {

        Security.addProvider(new BouncyCastleProvider());

        KeyAgreement ka = KeyAgreement.getInstance("DH");
        ka.init(privkey);
        ka.doPhase(pubkey, true);

        byte[] sessionKeyBytes = ka.generateSecret();

        // Create the session key
        byte[] newBytes = new byte[length / 8];
        System.arraycopy(sessionKeyBytes, 0, newBytes, 0, length / 8);

        Key sessionKey = new SecretKeySpec(newBytes, algorithm);

        Clean.blank(sessionKeyBytes);
        Clean.blank(newBytes);

        return sessionKey;
    }

    /**
     * get a byte presentation of a PublicKey object
     *
     * @param pub the public key
     * @return byte representation of a public key
     */
    public static byte[] publicKeyToBytes(PublicKey pub) {
        return pub.getEncoded();
    }

    /**
     * convert byte representation of a public key to a PublicKey object
     *
     * @param keyBytes byte representation of a public key
     * @return PublicKey object
     * @throws NoSuchAlgorithmException unknown algorithm
     * @throws InvalidKeySpecException
     */
    public static PublicKey bytesToPublicKey(byte[] keyBytes)
            throws NoSuchAlgorithmException, InvalidKeySpecException {
        KeyFactory kf = KeyFactory.getInstance("DH");
        X509EncodedKeySpec x509Spec = new X509EncodedKeySpec(keyBytes);
        return kf.generatePublic(x509Spec);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一二三| 欧美浪妇xxxx高跟鞋交| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品国产精华液| 国产精品国产三级国产普通话三级| 日韩视频在线一区二区| 91精品国产综合久久久久久久| 欧美自拍丝袜亚洲| 色婷婷综合五月| 色av一区二区| 精品视频色一区| 欧美网站一区二区| 欧美图区在线视频| 欧美高清视频www夜色资源网| 欧美视频自拍偷拍| 日韩一区二区在线看| 久久久久久免费网| 中文字幕一区二区三区不卡| 亚洲日本乱码在线观看| 亚洲国产欧美在线| 日本怡春院一区二区| 国产一区二区成人久久免费影院| 国产在线一区二区| 99久久综合狠狠综合久久| 色综合中文字幕国产| 色婷婷香蕉在线一区二区| 欧美中文字幕一二三区视频| 欧美一区二区三级| 国产日韩影视精品| 亚洲一卡二卡三卡四卡无卡久久| 石原莉奈在线亚洲二区| 韩国中文字幕2020精品| 成人动漫视频在线| 欧美高清hd18日本| 久久久久久9999| 亚洲人亚洲人成电影网站色| 日日噜噜夜夜狠狠视频欧美人| 精品制服美女久久| 色婷婷综合久久久久中文| 欧美一级专区免费大片| 国产精品美女www爽爽爽| 亚洲国产毛片aaaaa无费看| 狠狠久久亚洲欧美| 精品视频一区三区九区| 国产日韩欧美在线一区| 亚洲国产aⅴ天堂久久| 国产精选一区二区三区| 欧美午夜精品久久久久久超碰 | 国产成人精品影院| 91国模大尺度私拍在线视频| 日韩精品一区二区三区蜜臀| 亚洲啪啪综合av一区二区三区| 日本视频一区二区| 日本高清免费不卡视频| 久久精品在线观看| 另类小说图片综合网| 色婷婷久久久综合中文字幕| 国产亲近乱来精品视频 | 欧美日韩日本视频| 中文字幕在线不卡一区二区三区| 久久激情五月婷婷| 欧美亚洲国产一区二区三区va| 国产网站一区二区三区| 久久激情五月激情| 欧美高清精品3d| 亚洲国产成人精品视频| www.av亚洲| 国产欧美日韩另类视频免费观看| 日韩一区欧美二区| 欧美精品电影在线播放| 一区二区三区在线播放| 99精品视频中文字幕| 欧美国产精品v| 国产精品亚洲а∨天堂免在线| 日韩一区二区精品在线观看| 日本一区中文字幕| 69堂成人精品免费视频| 午夜精品一区二区三区电影天堂| 色噜噜狠狠一区二区三区果冻| 中文字幕欧美一| 99国产精品久久| 日韩一区中文字幕| 一本大道久久a久久精品综合| 成人免费小视频| 色婷婷av一区二区三区软件| 日韩理论片中文av| 91在线丨porny丨国产| 亚洲人成在线播放网站岛国| 色哟哟精品一区| 亚洲福利电影网| 在线不卡一区二区| 美女爽到高潮91| 久久这里只有精品视频网| 国内欧美视频一区二区| 国产日韩欧美电影| voyeur盗摄精品| 一区二区三区在线播放| 6080午夜不卡| 国内精品在线播放| 亚洲欧洲美洲综合色网| 91麻豆国产在线观看| 午夜精品成人在线视频| 日韩免费福利电影在线观看| 东方欧美亚洲色图在线| 亚洲乱码国产乱码精品精可以看| 欧美视频一区二区| 精品一区二区三区免费| 国产精品九色蝌蚪自拍| 欧美少妇性性性| 国产尤物一区二区在线| 最新热久久免费视频| 欧美日韩视频在线第一区| 久久99国产精品尤物| 亚洲欧美中日韩| 正在播放一区二区| 成人黄色一级视频| 蜜臀av一级做a爰片久久| 国产精品久久久一本精品| 欧美精品久久久久久久多人混战 | 暴力调教一区二区三区| 亚洲狠狠爱一区二区三区| 精品裸体舞一区二区三区| 91亚洲午夜精品久久久久久| 美女视频一区二区三区| 日韩av一二三| 欧美激情一区二区三区在线| 欧美日韩国产另类不卡| 成人av影视在线观看| 日韩不卡一区二区三区| 国产精品成人免费| 久久美女高清视频| 欧美美女直播网站| 91丨九色porny丨蝌蚪| 黄色日韩网站视频| 日产国产高清一区二区三区| 亚洲三级免费观看| 日本一区二区三区电影| 欧美zozozo| 欧美一区二区在线免费播放| 色欧美88888久久久久久影院| 国产精品18久久久久久久网站| 天天av天天翘天天综合网| 中文字幕制服丝袜成人av| 国产午夜精品一区二区三区嫩草| 欧美一区二区视频网站| 欧美伊人精品成人久久综合97| 成人手机在线视频| 国产一区美女在线| 狠狠网亚洲精品| 久久精品国产99国产| 日韩高清一区二区| 国产河南妇女毛片精品久久久 | 日韩视频一区二区在线观看| 欧美日韩综合在线免费观看| 91国产福利在线| 欧洲视频一区二区| 欧美日韩一区二区在线观看| 日本高清不卡一区| 欧美日韩在线电影| 欧美体内she精视频| 欧美性三三影院| 欧美日韩精品电影| 777久久久精品| 精品奇米国产一区二区三区| 欧美一区2区视频在线观看| 777a∨成人精品桃花网| 欧美一区二区免费观在线| 日韩欧美色综合网站| 久久久久亚洲蜜桃| 国产精品久久777777| 一区二区三区美女| 日韩精品一卡二卡三卡四卡无卡| 日韩高清在线一区| 国产精品正在播放| av在线不卡免费看| 91成人在线免费观看| 67194成人在线观看| 精品国产制服丝袜高跟| 中文字幕成人av| 亚洲精品国久久99热| 婷婷中文字幕一区三区| 精一区二区三区| 91色九色蝌蚪| 欧美一区二区免费视频| 欧美激情一区二区三区蜜桃视频| 国产精品盗摄一区二区三区| 亚洲成av人片一区二区梦乃| 九色porny丨国产精品| 国v精品久久久网| 精品婷婷伊人一区三区三| 精品久久人人做人人爽| 中文字幕亚洲一区二区av在线| 亚洲www啪成人一区二区麻豆| 久久国产乱子精品免费女| 成a人片国产精品| 欧美日韩视频在线第一区| 国产无人区一区二区三区| 五月激情综合色| 国产不卡视频在线观看| 欧美裸体一区二区三区|