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

📄 keypairgenerator.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * @see Provider     *     * @since 1.4     */    public static KeyPairGenerator getInstance(String algorithm,					       Provider provider) 	throws NoSuchAlgorithmException    {	if (provider == null)	    throw new IllegalArgumentException("missing provider");	Object[] objs = Security.getImpl(algorithm, "KeyPairGenerator",					 provider);	if (objs[0] instanceof KeyPairGenerator) {	    KeyPairGenerator keyPairGen = (KeyPairGenerator)objs[0];	    keyPairGen.provider = (Provider)objs[1];	    return keyPairGen;	} else {	    KeyPairGenerator delegate =		new Delegate((KeyPairGeneratorSpi)objs[0], algorithm);	    delegate.provider = (Provider)objs[1];	    return delegate;	}    }    /**      * Returns the provider of this key pair generator object.     *      * @return the provider of this key pair generator object     */    public final Provider getProvider() {	return this.provider;    }    /**     * Initializes the key pair generator for a certain keysize using     * a default parameter set and the <code>SecureRandom</code>     * implementation of the highest-priority installed provider as the source     * of randomness.     * (If none of the installed providers supply an implementation of     * <code>SecureRandom</code>, a system-provided source of randomness is     * used.)     *     * @param keysize the keysize. This is an     * algorithm-specific metric, such as modulus length, specified in     * number of bits.     *     * @exception InvalidParameterException if the <code>keysize</code> is not     * supported by this KeyPairGenerator object.     */    public void initialize(int keysize) {	initialize(keysize, new SecureRandom());    }    /**     * Initializes the key pair generator for a certain keysize with     * the given source of randomness (and a default parameter set).     *     * @param keysize the keysize. This is an     * algorithm-specific metric, such as modulus length, specified in     * number of bits.     * @param random the source of randomness.     *     * @exception InvalidParameterException if the <code>keysize</code> is not     * supported by this KeyPairGenerator object.     *     * @since 1.2     */    public void initialize(int keysize, SecureRandom random) {	// This does nothing, because either	// 1. the implementation object returned by getInstance() is an	//    instance of KeyPairGenerator which has its own 	//    initialize(keysize, random) method, so the application would	//    be calling that method directly, or	// 2. the implementation returned by getInstance() is an instance	//    of Delegate, in which case initialize(keysize, random) is	//    overridden to call the corresponding SPI method.	// (This is a special case, because the API and SPI method have the	// same name.)    }    /**     * Initializes the key pair generator using the specified parameter      * set and the <code>SecureRandom</code>     * implementation of the highest-priority installed provider as the source     * of randomness.     * (If none of the installed providers supply an implementation of     * <code>SecureRandom</code>, a system-provided source of randomness is     * used.).     *     * <p>This concrete method has been added to this previously-defined     * abstract class.     * This method calls the KeyPairGeneratorSpi      * {@link KeyPairGeneratorSpi.html#     * initialize(java.security.spec.AlgorithmParameterSpec,     * java.security.SecureRandom) initialize} method,      * passing it <code>params</code> and a source of randomness (obtained     * from the highest-priority installed provider or system-provided if none     * of the installed providers supply one).     * That <code>initialize</code> method always throws an     * UnsupportedOperationException if it is not overridden by the provider.     *     * @param params the parameter set used to generate the keys.     *     * @exception InvalidAlgorithmParameterException if the given parameters     * are inappropriate for this key pair generator.     *     * @since 1.2     */    public void initialize(AlgorithmParameterSpec params)	throws InvalidAlgorithmParameterException {	    initialize(params, new SecureRandom());    }    /**     * Initializes the key pair generator with the given parameter      * set and source of randomness.     *     * <p>This concrete method has been added to this previously-defined     * abstract class.     * This method calls the KeyPairGeneratorSpi {@link      * KeyPairGeneratorSpi.html#     * initialize(java.security.spec.AlgorithmParameterSpec,     * java.security.SecureRandom) initialize} method,      * passing it <code>params</code> and <code>random</code>.     * That <code>initialize</code>     * method always throws an     * UnsupportedOperationException if it is not overridden by the provider.     *     * @param params the parameter set used to generate the keys.     * @param random the source of randomness.     *     * @exception InvalidAlgorithmParameterException if the given parameters     * are inappropriate for this key pair generator.     *     * @since 1.2     */    public void initialize(AlgorithmParameterSpec params,			   SecureRandom random)	throws InvalidAlgorithmParameterException    {	// This does nothing, because either	// 1. the implementation object returned by getInstance() is an	//    instance of KeyPairGenerator which has its own 	//    initialize(params, random) method, so the application would	//    be calling that method directly, or	// 2. the implementation returned by getInstance() is an instance	//    of Delegate, in which case initialize(params, random) is	//    overridden to call the corresponding SPI method.	// (This is a special case, because the API and SPI method have the	// same name.)    }    /**     * Generates a key pair.     *     * <p>If this KeyPairGenerator has not been initialized explicitly,     * provider-specific defaults will be used for the size and other     * (algorithm-specific) values of the generated keys.     *     * <p>This will generate a new key pair every time it is called.     *     * <p>This method is functionally equivalent to      * {@link #generateKeyPair() generateKeyPair}.     *     * @return the generated key pair     *     * @since 1.2     */    public final KeyPair genKeyPair() {	return generateKeyPair();    }    /**     * Generates a key pair.     *     * <p>If this KeyPairGenerator has not been initialized explicitly,     * provider-specific defaults will be used for the size and other     * (algorithm-specific) values of the generated keys.     *     * <p>This will generate a new key pair every time it is called.     *      * <p>This method is functionally equivalent to      * {@link #genKeyPair() genKeyPair}.     *     * @return the generated key pair     */    public KeyPair generateKeyPair() {	// This does nothing (except returning null), because either:	//	// 1. the implementation object returned by getInstance() is an	//    instance of KeyPairGenerator which has its own implementation	//    of generateKeyPair (overriding this one), so the application	//    would be calling that method directly, or	//	// 2. the implementation returned by getInstance() is an instance	//    of Delegate, in which case generateKeyPair is	//    overridden to invoke the corresponding SPI method.	//	// (This is a special case, because in JDK 1.1.x the generateKeyPair	// method was used both as an API and a SPI method.)        return null;    }    /*     * The following class allows providers to extend from KeyPairGeneratorSpi     * rather than from KeyPairGenerator. It represents a KeyPairGenerator     * with an encapsulated, provider-supplied SPI object (of type     * KeyPairGeneratorSpi).     * If the provider implementation is an instance of KeyPairGeneratorSpi,     * the getInstance() methods above return an instance of this class, with     * the SPI object encapsulated.     *     * Note: All SPI methods from the original KeyPairGenerator class have been     * moved up the hierarchy into a new class (KeyPairGeneratorSpi), which has     * been interposed in the hierarchy between the API (KeyPairGenerator)     * and its original parent (Object).     */    static class Delegate extends KeyPairGenerator {	// The provider implementation (delegate)	private KeyPairGeneratorSpi kpairGenSpi;	// constructor	public Delegate(KeyPairGeneratorSpi kpairGenSpi, String algorithm) {	    super(algorithm);	    this.kpairGenSpi = kpairGenSpi;	}    	// engine method	public void initialize(int keysize, SecureRandom random) {	    kpairGenSpi.initialize(keysize, random);	}	// engine method	public void initialize(AlgorithmParameterSpec params,			       SecureRandom random)	    throws InvalidAlgorithmParameterException {		kpairGenSpi.initialize(params, random);;	}	// engine method	public KeyPair generateKeyPair() {	    return kpairGenSpi.generateKeyPair();	}    }}

⌨️ 快捷键说明

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