1 /*
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
51 * @author Benjamin Renaud
52 * @since 1.2
53 *
54 *
55 * @see KeyPairGenerator
56 * @see java.security.spec.AlgorithmParameterSpec
57 */
58
59 public abstract class KeyPairGeneratorSpi {
60
61 /**
62 * Initializes the key pair generator for a certain keysize, using
63 * the default parameter set.
64 *
65 * @param keysize the keysize. This is an
66 * algorithm-specific metric, such as modulus length, specified in
67 * number of bits.
68 *
69 * @param random the source of randomness for this generator.
70 *
71 * @exception InvalidParameterException if the {@code keysize} is not
72 * supported by this KeyPairGeneratorSpi object.
73 */
74 public abstract void initialize(int keysize, SecureRandom random);
75
76 /**
77 * Initializes the key pair generator using the specified parameter
78 * set and user-provided source of randomness.
79 *
80 * <p>This concrete method has been added to this previously-defined
81 * abstract class. (For backwards compatibility, it cannot be abstract.)
82 * It may be overridden by a provider to initialize the key pair
83 * generator. Such an override
84 * is expected to throw an InvalidAlgorithmParameterException if
85 * a parameter is inappropriate for this key pair generator.
86 * If this method is not overridden, it always throws an
87 * UnsupportedOperationException.
88 *
89 * @param params the parameter set used to generate the keys.
90 *
91 * @param random the source of randomness for this generator.
92 *
93 * @exception InvalidAlgorithmParameterException if the given parameters
94 * are inappropriate for this key pair generator.
95 *
96 * @since 1.2
97 */
98 public void initialize(AlgorithmParameterSpec params,
99 SecureRandom random)
100 throws InvalidAlgorithmParameterException {
101 throw new UnsupportedOperationException();
102 }
103
104 /**
105 * Generates a key pair. Unless an initialization method is called
106 * using a KeyPairGenerator interface, algorithm-specific defaults
107 * will be used. This will generate a new key pair every time it
108 * is called.
109 *
110 * @return the newly generated {@code KeyPair}
111 */
112 public abstract KeyPair generateKeyPair();
113 }
|
1 /*
2 * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
51 * @author Benjamin Renaud
52 * @since 1.2
53 *
54 *
55 * @see KeyPairGenerator
56 * @see java.security.spec.AlgorithmParameterSpec
57 */
58
59 public abstract class KeyPairGeneratorSpi {
60
61 /**
62 * Initializes the key pair generator for a certain keysize, using
63 * the default parameter set.
64 *
65 * @param keysize the keysize. This is an
66 * algorithm-specific metric, such as modulus length, specified in
67 * number of bits.
68 *
69 * @param random the source of randomness for this generator.
70 *
71 * @throws InvalidParameterException if the {@code keysize} is not
72 * supported by this KeyPairGeneratorSpi object.
73 */
74 public abstract void initialize(int keysize, SecureRandom random);
75
76 /**
77 * Initializes the key pair generator using the specified parameter
78 * set and user-provided source of randomness.
79 *
80 * <p>This concrete method has been added to this previously-defined
81 * abstract class. (For backwards compatibility, it cannot be abstract.)
82 * It may be overridden by a provider to initialize the key pair
83 * generator. Such an override
84 * is expected to throw an InvalidAlgorithmParameterException if
85 * a parameter is inappropriate for this key pair generator.
86 * If this method is not overridden, it always throws an
87 * UnsupportedOperationException.
88 *
89 * @param params the parameter set used to generate the keys.
90 *
91 * @param random the source of randomness for this generator.
92 *
93 * @throws InvalidAlgorithmParameterException if the given parameters
94 * are inappropriate for this key pair generator.
95 *
96 * @since 1.2
97 */
98 public void initialize(AlgorithmParameterSpec params,
99 SecureRandom random)
100 throws InvalidAlgorithmParameterException {
101 throw new UnsupportedOperationException();
102 }
103
104 /**
105 * Generates a key pair. Unless an initialization method is called
106 * using a KeyPairGenerator interface, algorithm-specific defaults
107 * will be used. This will generate a new key pair every time it
108 * is called.
109 *
110 * @return the newly generated {@code KeyPair}
111 */
112 public abstract KeyPair generateKeyPair();
113 }
|