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 + -
显示快捷键?