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

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

?? wrapcipherspi.java

?? 內容:基于jdk1.4的加密算法的具體實現
?? JAVA
字號:
package org.bouncycastle.jce.provider;import java.io.ByteArrayInputStream;import java.security.AlgorithmParameters;import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyFactory;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.PrivateKey;import java.security.SecureRandom;import java.security.spec.AlgorithmParameterSpec;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.CipherSpi;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import javax.crypto.ShortBufferException;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.PBEParameterSpec;import javax.crypto.spec.RC2ParameterSpec;import javax.crypto.spec.RC5ParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.bouncycastle.asn1.ASN1InputStream;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.DERObjectIdentifier;import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers;import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.InvalidCipherTextException;import org.bouncycastle.crypto.Wrapper;import org.bouncycastle.crypto.engines.AESWrapEngine;import org.bouncycastle.crypto.engines.DESedeWrapEngine;import org.bouncycastle.crypto.engines.RC2WrapEngine;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithIV;public abstract class WrapCipherSpi extends CipherSpi    implements PBE{    //    // specs we can handle.    //    private Class[]                 availableSpecs =                                    {                                        IvParameterSpec.class,                                        PBEParameterSpec.class,                                        RC2ParameterSpec.class,                                        RC5ParameterSpec.class                                    };    protected int                     pbeType = PKCS12;    protected int                     pbeHash = SHA1;    protected int                     pbeKeySize;    protected int                     pbeIvSize;    protected AlgorithmParameters     engineParams = null;    protected Wrapper                   wrapEngine = null;    protected WrapCipherSpi()    {    }    protected WrapCipherSpi(        Wrapper wrapEngine)    {        this.wrapEngine = wrapEngine;    }    protected int engineGetBlockSize()    {        return 0;    }    protected byte[] engineGetIV()    {        return null;    }    protected int engineGetKeySize(        Key     key)    {        return key.getEncoded().length;    }    protected int engineGetOutputSize(        int     inputLen)    {        return -1;    }    protected AlgorithmParameters engineGetParameters()    {        return null;    }    protected void engineSetMode(        String  mode)        throws NoSuchAlgorithmException    {        throw new NoSuchAlgorithmException("can't support mode " + mode);    }    protected void engineSetPadding(        String  padding)    throws NoSuchPaddingException    {        throw new NoSuchPaddingException("Padding " + padding + " unknown.");    }    protected void engineInit(        int                     opmode,        Key                     key,        AlgorithmParameterSpec  params,        SecureRandom            random)    throws InvalidKeyException, InvalidAlgorithmParameterException    {        CipherParameters        param;        if (key instanceof JCEPBEKey)        {            JCEPBEKey   k = (JCEPBEKey)key;                        if (params instanceof PBEParameterSpec)            {                param = PBE.Util.makePBEParameters(k, params, wrapEngine.getAlgorithmName());            }            else if (k.getParam() != null)            {                param = k.getParam();            }            else            {                throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");            }        }        else        {            param = new KeyParameter(key.getEncoded());        }        if (params instanceof javax.crypto.spec.IvParameterSpec)        {            IvParameterSpec iv = (IvParameterSpec) params;            CipherParameters paramPlusIV = new ParametersWithIV(param, iv.getIV());            param = paramPlusIV;        }        switch (opmode)        {        case Cipher.WRAP_MODE:            wrapEngine.init(true, param);            break;        case Cipher.UNWRAP_MODE:            wrapEngine.init(false, param);            break;        case Cipher.ENCRYPT_MODE:        case Cipher.DECRYPT_MODE:            throw new IllegalArgumentException("engine only valid for wrapping");        default:            System.out.println("eeek!");        }    }    protected void engineInit(        int                 opmode,        Key                 key,        AlgorithmParameters params,        SecureRandom        random)    throws InvalidKeyException, InvalidAlgorithmParameterException    {        AlgorithmParameterSpec  paramSpec = null;        if (params != null)        {            for (int i = 0; i != availableSpecs.length; i++)            {                try                {                    paramSpec = params.getParameterSpec(availableSpecs[i]);                    break;                }                catch (Exception e)                {                    continue;                }            }            if (paramSpec == null)            {                throw new InvalidAlgorithmParameterException("can't handle parameter " + params.toString());            }        }        engineParams = params;        engineInit(opmode, key, paramSpec, random);    }    protected void engineInit(        int                 opmode,        Key                 key,        SecureRandom        random)        throws InvalidKeyException    {        try        {            engineInit(opmode, key, (AlgorithmParameterSpec)null, random);        }        catch (InvalidAlgorithmParameterException e)        {            throw new IllegalArgumentException(e.getMessage());        }    }    protected byte[] engineUpdate(        byte[]  input,        int     inputOffset,        int     inputLen)    {        throw new RuntimeException("not supported for wrapping");    }    protected int engineUpdate(        byte[]  input,        int     inputOffset,        int     inputLen,        byte[]  output,        int     outputOffset)        throws ShortBufferException    {        throw new RuntimeException("not supported for wrapping");    }    protected byte[] engineDoFinal(        byte[]  input,        int     inputOffset,        int     inputLen)        throws IllegalBlockSizeException, BadPaddingException    {        return null;    }    protected int engineDoFinal(        byte[]  input,        int     inputOffset,        int     inputLen,        byte[]  output,        int     outputOffset)        throws IllegalBlockSizeException, BadPaddingException    {        return 0;    }    protected byte[] engineWrap(        Key     key)    throws IllegalBlockSizeException, java.security.InvalidKeyException    {        byte[] encoded = key.getEncoded();        if (encoded == null)        {            throw new InvalidKeyException("Cannot wrap key, null encoding.");        }        try        {            if (wrapEngine == null)            {                return engineDoFinal(encoded, 0, encoded.length);            }            else            {                return wrapEngine.wrap(encoded, 0, encoded.length);            }        }        catch (BadPaddingException e)        {            throw new IllegalBlockSizeException(e.getMessage());        }    }    protected Key engineUnwrap(        byte[]  wrappedKey,        String  wrappedKeyAlgorithm,        int     wrappedKeyType)    throws InvalidKeyException    {        byte[] encoded = null;        try        {            if (wrapEngine == null)            {                encoded = engineDoFinal(wrappedKey, 0, wrappedKey.length);            }            else            {                encoded = wrapEngine.unwrap(wrappedKey, 0, wrappedKey.length);            }        }        catch (InvalidCipherTextException e)        {            throw new InvalidKeyException(e.getMessage());        }        catch (BadPaddingException e)        {            throw new InvalidKeyException(e.getMessage());        }        catch (IllegalBlockSizeException e2)        {            throw new InvalidKeyException(e2.getMessage());        }        if (wrappedKeyType == Cipher.SECRET_KEY)        {            return new SecretKeySpec(encoded, wrappedKeyAlgorithm);        }        else if (wrappedKeyAlgorithm.equals("") && wrappedKeyType == Cipher.PRIVATE_KEY)        {            /*             * The caller doesnt know the algorithm as it is part of             * the encrypted data.             */            ASN1InputStream bIn = new ASN1InputStream(new ByteArrayInputStream(encoded));            PrivateKey      privKey = null;            try            {                ASN1Sequence         s = (ASN1Sequence)bIn.readObject();                PrivateKeyInfo       in = new PrivateKeyInfo(s);                DERObjectIdentifier  oid = in.getAlgorithmId().getObjectId();                if (oid.equals(X9ObjectIdentifiers.id_ecPublicKey))                {                    privKey = new JCEECPrivateKey(in);                }                else if (oid.equals(CryptoProObjectIdentifiers.gostR3410_94))                {                    privKey = new JDKGOST3410PrivateKey(in);                }                else if (oid.equals(X9ObjectIdentifiers.id_dsa))                {                    privKey = new JDKDSAPrivateKey(in);                }                else if (oid.equals(PKCSObjectIdentifiers.dhKeyAgreement))                {                    privKey = new JCEDHPrivateKey(in);                }                else if (oid.equals(X9ObjectIdentifiers.dhpublicnumber))                {                    privKey = new JCEDHPrivateKey(in);                }                else    // the old standby!                {                    privKey = new JCERSAPrivateCrtKey(in);                }            }            catch (Exception e)            {                throw new InvalidKeyException("Invalid key encoding.");            }            return privKey;        }        else        {            try            {                KeyFactory kf = KeyFactory.getInstance(wrappedKeyAlgorithm, "BC");                if (wrappedKeyType == Cipher.PUBLIC_KEY)                {                    return kf.generatePublic(new X509EncodedKeySpec(encoded));                }                else if (wrappedKeyType == Cipher.PRIVATE_KEY)                {                    return kf.generatePrivate(new PKCS8EncodedKeySpec(encoded));                }            }            catch (NoSuchProviderException e)            {                throw new InvalidKeyException("Unknown key type " + e.getMessage());            }            catch (NoSuchAlgorithmException e)            {                throw new InvalidKeyException("Unknown key type " + e.getMessage());            }            catch (InvalidKeySpecException e2)            {                throw new InvalidKeyException("Unknown key type " + e2.getMessage());            }            throw new InvalidKeyException("Unknown key type " + wrappedKeyType);        }    }    //    // classes that inherit directly from us    //    public static class AESWrap        extends WrapCipherSpi    {        public AESWrap()        {            super(new AESWrapEngine());        }    }    public static class DESEDEWrap        extends WrapCipherSpi    {        public DESEDEWrap()        {            super(new DESedeWrapEngine());        }    }    public static class RC2Wrap        extends WrapCipherSpi    {        public RC2Wrap()        {            super(new RC2WrapEngine());        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国际精品| 久久电影网站中文字幕| 青青草97国产精品免费观看无弹窗版| 国产精品白丝av| 这里只有精品电影| 亚洲自拍偷拍九九九| 成人国产电影网| 久久久久国产精品厨房| 蜜桃传媒麻豆第一区在线观看| 99久久99久久精品免费观看| 国产午夜精品美女毛片视频| 裸体在线国模精品偷拍| 欧美日韩亚洲另类| 亚洲精品videosex极品| 成人激情校园春色| 亚洲国产高清aⅴ视频| 经典三级视频一区| 日韩一区二区电影在线| 日精品一区二区| 9191成人精品久久| 五月婷婷久久综合| 欧美日产在线观看| 午夜亚洲福利老司机| 欧洲精品中文字幕| 亚洲精品视频在线看| 91国偷自产一区二区开放时间 | 亚洲视频小说图片| 国产精选一区二区三区| 久久久www免费人成精品| 国产一区二区免费在线| 久久综合狠狠综合| 国产精品91xxx| 久久久久久久性| 成人性视频免费网站| 成人欧美一区二区三区黑人麻豆 | 精品亚洲成a人| 日韩欧美中文字幕公布| 久久99精品国产.久久久久| 久久久久久久久久美女| 国产 欧美在线| 亚洲欧美激情一区二区| 色视频欧美一区二区三区| 日韩—二三区免费观看av| 欧美自拍偷拍午夜视频| 日本欧美一区二区| 精品国产乱码久久久久久久| 国产精品一区二区x88av| 国产精品乱码一区二区三区软件 | 三级欧美在线一区| 日韩精品中文字幕在线一区| 成人少妇影院yyyy| 一区二区三区在线播| 3d动漫精品啪啪| 国产91色综合久久免费分享| 亚洲欧美日韩国产一区二区三区| 欧美亚洲一区二区在线| 精品一区二区在线免费观看| 中文字幕免费观看一区| 在线观看国产日韩| 国产一区二区在线观看免费 | 久久免费美女视频| 91丨porny丨户外露出| 丝袜美腿高跟呻吟高潮一区| 国产三级精品在线| 欧美日精品一区视频| 精品一区二区精品| 亚洲三级电影网站| 日韩一区二区三区四区 | 国产精品人人做人人爽人人添| 日本丶国产丶欧美色综合| 捆绑调教美女网站视频一区| 欧美国产成人精品| 91精品国产综合久久久久久漫画 | 国内精品免费**视频| 1区2区3区国产精品| 精品国产凹凸成av人导航| 欧美性猛交一区二区三区精品| 激情六月婷婷久久| 亚洲永久免费av| 日本一区二区三区高清不卡| 在线播放亚洲一区| 91在线免费视频观看| 精品在线一区二区| 午夜精品成人在线视频| 国产精品久久久久9999吃药| 欧美mv日韩mv国产| 欧美猛男超大videosgay| 成人激情小说乱人伦| 国精产品一区一区三区mba桃花 | 一级中文字幕一区二区| 国产欧美一区二区精品性色| 日韩一区二区三区免费看 | 日韩精品乱码av一区二区| 成人欧美一区二区三区视频网页| 久久久久久久综合日本| 日韩三级电影网址| 欧美高清性hdvideosex| 色噜噜狠狠色综合中国| www.视频一区| 成人久久18免费网站麻豆| 韩国视频一区二区| 精东粉嫩av免费一区二区三区| 天堂影院一区二区| 亚洲高清久久久| 亚洲123区在线观看| 亚洲va国产天堂va久久en| 亚洲一区在线播放| 一区二区三区中文字幕精品精品 | 精品久久久久久久久久久久久久久久久| 91久久国产最好的精华液| 色哟哟一区二区在线观看| 日本乱人伦aⅴ精品| 在线免费观看视频一区| 在线中文字幕一区二区| 欧美亚一区二区| 欧美浪妇xxxx高跟鞋交| 欧美一区二区三区视频免费| 日韩欧美卡一卡二| 久久综合久久99| 中文字幕精品一区二区精品绿巨人| 国产无一区二区| 亚洲女同ⅹxx女同tv| 亚洲综合在线视频| 视频一区中文字幕国产| 麻豆91在线观看| 国产精品一级在线| 99精品视频在线观看免费| 在线观看日韩av先锋影音电影院| 欧美综合一区二区| 日韩精品一区二区三区视频在线观看| 欧美刺激午夜性久久久久久久| 日韩欧美在线综合网| 国产三区在线成人av| 亚洲色图视频免费播放| 午夜成人免费视频| 黄一区二区三区| 91视频一区二区三区| 欧美视频在线一区二区三区| 日韩一区二区免费在线电影| 国产亚洲女人久久久久毛片| 亚洲欧美日韩国产手机在线| 日本伊人午夜精品| 波多野结衣中文一区| 欧美午夜精品久久久| 欧美tk—视频vk| 自拍偷拍欧美激情| 久久成人免费电影| 91美女福利视频| 亚洲精品在线电影| 亚洲一区二区三区自拍| 久久99精品国产麻豆不卡| 日本精品一级二级| 久久综合久久综合久久综合| 亚洲日本va在线观看| 久久国产婷婷国产香蕉| 91首页免费视频| 久久久青草青青国产亚洲免观| 亚洲免费视频成人| 国产一区二区三区在线观看精品| 欧洲av一区二区嗯嗯嗯啊| 日本一区二区视频在线观看| 舔着乳尖日韩一区| 91视频在线观看免费| 久久夜色精品国产噜噜av| 亚洲一级电影视频| 不卡免费追剧大全电视剧网站| 日韩欧美你懂的| 午夜欧美电影在线观看| 波多野结衣一区二区三区| 精品国产91亚洲一区二区三区婷婷| 亚洲男人的天堂一区二区| 福利电影一区二区三区| 日韩一区二区视频在线观看| 一区二区三区免费观看| 懂色av一区二区三区免费看| 精品区一区二区| 免费一区二区视频| 欧美日本不卡视频| 一区二区三区成人在线视频| 99久久精品国产精品久久 | 精品国产乱码久久久久久影片| 亚洲第一激情av| 色8久久人人97超碰香蕉987| 国产精品三级视频| 风间由美一区二区三区在线观看| 日韩欧美国产高清| 日韩黄色免费电影| 欧美高清hd18日本| 亚洲成人免费看| 欧美日高清视频| 亚洲成人av电影在线| 欧美日韩大陆在线| 天天亚洲美女在线视频| 欧美日韩国产综合一区二区 | 一区二区三区在线免费视频| 一本一本大道香蕉久在线精品| 国产精品美女久久福利网站| av亚洲精华国产精华精| 中文字幕欧美激情| 91丨国产丨九色丨pron|