jdkkeyfactory.java

来自「bouncycastle 是一个JAVA安全提供者」· Java 代码 · 共 690 行 · 第 1/2 页

JAVA
690
字号
                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                                new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof RSAPublicKeySpec)            {                return new JCERSAPublicKey((RSAPublicKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }    public static class DH        extends JDKKeyFactory    {        public DH()        {        }        protected PrivateKey engineGeneratePrivate(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof PKCS8EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPrivateKeyFromDERStream(                                new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof DHPrivateKeySpec)            {                return new JCEDHPrivateKey((DHPrivateKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }            protected PublicKey engineGeneratePublic(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof X509EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                                new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof DHPublicKeySpec)            {                return new JCEDHPublicKey((DHPublicKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }    public static class DSA        extends JDKKeyFactory    {        public DSA()        {        }        protected PrivateKey engineGeneratePrivate(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof PKCS8EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPrivateKeyFromDERStream(                                new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof DSAPrivateKeySpec)            {                return new JDKDSAPrivateKey((DSAPrivateKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }            protected PublicKey engineGeneratePublic(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof X509EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                                new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof DSAPublicKeySpec)            {                return new JDKDSAPublicKey((DSAPublicKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }    public static class GOST3410        extends JDKKeyFactory    {        public GOST3410()        {        }                protected PrivateKey engineGeneratePrivate(                KeySpec    keySpec)        throws InvalidKeySpecException        {            if (keySpec instanceof PKCS8EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPrivateKeyFromDERStream(                            new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof GOST3410PrivateKeySpec)            {                return new JDKGOST3410PrivateKey((GOST3410PrivateKeySpec)keySpec);            }                        throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }                protected PublicKey engineGeneratePublic(                KeySpec    keySpec)        throws InvalidKeySpecException        {            if (keySpec instanceof X509EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                            new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof GOST3410PublicKeySpec)            {                return new JDKGOST3410PublicKey((GOST3410PublicKeySpec)keySpec);            }                        throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }        public static class ElGamal        extends JDKKeyFactory    {        public ElGamal()        {            elGamalFactory = true;        }        protected PrivateKey engineGeneratePrivate(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof PKCS8EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPrivateKeyFromDERStream(                                new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof ElGamalPrivateKeySpec)            {                return new JCEElGamalPrivateKey((ElGamalPrivateKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }            protected PublicKey engineGeneratePublic(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof X509EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                                new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof ElGamalPublicKeySpec)            {                return new JCEElGamalPublicKey((ElGamalPublicKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }    public static class EC        extends JDKKeyFactory    {        String  algorithm;        public EC()        {            this("EC");        }        public EC(            String  algorithm)        {            this.algorithm = algorithm;        }        protected PrivateKey engineGeneratePrivate(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof PKCS8EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPrivateKeyFromDERStream(                                new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof ECPrivateKeySpec)            {                return new JCEECPrivateKey(algorithm, (ECPrivateKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }            protected PublicKey engineGeneratePublic(            KeySpec    keySpec)            throws InvalidKeySpecException        {            if (keySpec instanceof X509EncodedKeySpec)            {                try                {                    return JDKKeyFactory.createPublicKeyFromDERStream(                                new ByteArrayInputStream(((X509EncodedKeySpec)keySpec).getEncoded()));                }                catch (Exception e)                {                    throw new InvalidKeySpecException(e.toString());                }            }            else if (keySpec instanceof ECPublicKeySpec)            {                return new JCEECPublicKey(algorithm, (ECPublicKeySpec)keySpec);            }                throw new InvalidKeySpecException("Unknown KeySpec type: " + keySpec.getClass().getName());        }    }    public static class ECDSA        extends EC    {        public ECDSA()        {            super("ECDSA");        }    }        public static class ECGOST3410      extends EC    {        public ECGOST3410()        {            super("ECGOST3410");        }    }        public static class ECDH        extends EC    {        public ECDH()        {            super("ECDH");        }    }    public static class ECDHC        extends EC    {        public ECDHC()        {            super("ECDHC");        }    }}

⌨️ 快捷键说明

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