⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdkkeypairgenerator.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   JDKKeyPairGenerator.java

package org.bouncycastle.jce.provider;

import java.security.*;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Hashtable;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.generators.ECKeyPairGenerator;
import org.bouncycastle.crypto.params.*;
import org.bouncycastle.jce.ECNamedCurveTable;
import org.bouncycastle.jce.spec.ECParameterSpec;

// Referenced classes of package org.bouncycastle.jce.provider:
//			JCEECPrivateKey, JCEECPublicKey

public abstract class JDKKeyPairGenerator extends KeyPairGenerator
{
	public static class EC extends JDKKeyPairGenerator
	{

		ECKeyGenerationParameters param;
		ECKeyPairGenerator engine;
		ECParameterSpec ecParams;
		int strength;
		int certainty;
		SecureRandom random;
		boolean initialised;
		String algorithm;
		private static Hashtable ecParameters;

		public void initialize(int strength, SecureRandom random)
		{
			this.strength = strength;
			this.random = random;
			ecParams = (ECParameterSpec)ecParameters.get(new Integer(strength));
			if (ecParams != null)
			{
				param = new ECKeyGenerationParameters(new ECDomainParameters(ecParams.getCurve(), ecParams.getG(), ecParams.getN()), random);
				engine.init(param);
				initialised = true;
			}
		}

		public void initialize(AlgorithmParameterSpec params, SecureRandom random)
			throws InvalidAlgorithmParameterException
		{
			if (!(params instanceof ECParameterSpec))
			{
				throw new InvalidAlgorithmParameterException("parameter object not a ECParameterSpec");
			} else
			{
				ecParams = (ECParameterSpec)params;
				param = new ECKeyGenerationParameters(new ECDomainParameters(ecParams.getCurve(), ecParams.getG(), ecParams.getN()), random);
				engine.init(param);
				initialised = true;
				return;
			}
		}

		public KeyPair generateKeyPair()
		{
			if (!initialised)
			{
				throw new IllegalStateException("EC Key Pair Generator not initialised");
			} else
			{
				AsymmetricCipherKeyPair pair = engine.generateKeyPair();
				ECPublicKeyParameters pub = (ECPublicKeyParameters)pair.getPublic();
				ECPrivateKeyParameters priv = (ECPrivateKeyParameters)pair.getPrivate();
				return new KeyPair(new JCEECPublicKey(algorithm, pub, ecParams), new JCEECPrivateKey(algorithm, priv, ecParams));
			}
		}

		static 
		{
			ecParameters = new Hashtable();
			ecParameters.put(new Integer(192), ECNamedCurveTable.getParameterSpec("prime192v1"));
			ecParameters.put(new Integer(239), ECNamedCurveTable.getParameterSpec("prime239v1"));
			ecParameters.put(new Integer(256), ECNamedCurveTable.getParameterSpec("prime256v1"));
		}

		public EC(String algorithm)
		{
			super(algorithm);
			engine = new ECKeyPairGenerator();
			ecParams = null;
			strength = 239;
			certainty = 50;
			random = new SecureRandom();
			initialised = false;
			this.algorithm = algorithm;
		}
	}

	public static class ECDH extends EC
	{

		public ECDH()
		{
			super("ECDH");
		}
	}

	public static class ECDHC extends EC
	{

		public ECDHC()
		{
			super("ECDHC");
		}
	}

	public static class ECDSA extends EC
	{

		public ECDSA()
		{
			super("ECDSA");
		}
	}


	public JDKKeyPairGenerator(String algorithmName)
	{
		super(algorithmName);
	}

	public abstract void initialize(int i, SecureRandom securerandom);

	public abstract KeyPair generateKeyPair();
}

⌨️ 快捷键说明

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