seed.java

来自「kmlnjlkj nlkjlkjkljl okopokipoipo oipipi」· Java 代码 · 共 108 行

JAVA
108
字号
package org.bouncycastle.jce.provider.symmetric;import org.bouncycastle.crypto.CipherKeyGenerator;import org.bouncycastle.crypto.engines.SEEDEngine;import org.bouncycastle.crypto.engines.SEEDWrapEngine;import org.bouncycastle.crypto.modes.CBCBlockCipher;import org.bouncycastle.jce.provider.JCEBlockCipher;import org.bouncycastle.jce.provider.JCEKeyGenerator;import org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator;import org.bouncycastle.jce.provider.JDKAlgorithmParameters;import org.bouncycastle.jce.provider.WrapCipherSpi;import javax.crypto.spec.IvParameterSpec;import java.security.AlgorithmParameters;import java.security.InvalidAlgorithmParameterException;import java.security.SecureRandom;import java.security.spec.AlgorithmParameterSpec;public final class SEED{    private SEED()    {    }        public static class ECB        extends JCEBlockCipher    {        public ECB()        {            super(new SEEDEngine());        }    }    public static class CBC       extends JCEBlockCipher    {        public CBC()        {            super(new CBCBlockCipher(new SEEDEngine()), 128);        }    }    public static class Wrap        extends WrapCipherSpi    {        public Wrap()        {            super(new SEEDWrapEngine());        }    }    public static class KeyGen        extends JCEKeyGenerator    {        public KeyGen()        {            super("SEED", 128, new CipherKeyGenerator());        }    }    public static class AlgParamGen        extends JDKAlgorithmParameterGenerator    {        protected void engineInit(            AlgorithmParameterSpec genParamSpec,            SecureRandom random)            throws InvalidAlgorithmParameterException        {            throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for SEED parameter generation.");        }        protected AlgorithmParameters engineGenerateParameters()        {            byte[] iv = new byte[16];            if (random == null)            {                random = new SecureRandom();            }            random.nextBytes(iv);            AlgorithmParameters params;            try            {                params = AlgorithmParameters.getInstance("SEED", "BC");                params.init(new IvParameterSpec(iv));            }            catch (Exception e)            {                throw new RuntimeException(e.getMessage());            }            return params;        }    }    public static class AlgParams        extends JDKAlgorithmParameters.IVAlgorithmParameters    {        protected String engineToString()        {            return "SEED IV";        }    }}

⌨️ 快捷键说明

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