1 package java.security;
2 
3 import java.security.spec.AlgorithmParameterSpec;
4 
5 public class AlgorithmParameterGenerator
6 {
7     AlgorithmParameterGeneratorSpi      spi;
8     Provider                            provider;
9     String                              algorithm;
10 
AlgorithmParameterGenerator( AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)11     protected AlgorithmParameterGenerator(
12         AlgorithmParameterGeneratorSpi paramGenSpi,
13         Provider provider,
14         String algorithm)
15     {
16         this.spi = paramGenSpi;
17         this.provider = provider;
18         this.algorithm = algorithm;
19     }
20 
generateParameters()21     public final AlgorithmParameters generateParameters()
22     {
23         return spi.engineGenerateParameters();
24     }
25 
getAlgorithm()26     public final String getAlgorithm()
27     {
28         return algorithm;
29     }
30 
getInstance(String algorithm)31     public static AlgorithmParameterGenerator getInstance(String algorithm)
32         throws NoSuchAlgorithmException
33     {
34         try
35         {
36             SecurityUtil.Implementation  imp = SecurityUtil.getImplementation("AlgorithmParameterGenerator", algorithm, null);
37 
38             if (imp != null)
39             {
40                 return new AlgorithmParameterGenerator((AlgorithmParameterGeneratorSpi)imp.getEngine(), imp.getProvider(), algorithm);
41             }
42 
43             throw new NoSuchAlgorithmException("can't find algorithm " + algorithm);
44         }
45         catch (NoSuchProviderException e)
46         {
47             throw new NoSuchAlgorithmException(algorithm + " not found");
48         }
49     }
50 
getInstance(String algorithm, String provider)51     public static AlgorithmParameterGenerator getInstance(String algorithm, String provider)
52         throws NoSuchAlgorithmException, NoSuchProviderException
53     {
54         SecurityUtil.Implementation  imp = SecurityUtil.getImplementation("AlgorithmParameterGenerator", algorithm, provider);
55 
56         if (imp != null)
57         {
58             return new AlgorithmParameterGenerator((AlgorithmParameterGeneratorSpi)imp.getEngine(), imp.getProvider(), algorithm);
59         }
60 
61         throw new NoSuchAlgorithmException("can't find algorithm " + algorithm);
62     }
63 
getProvider()64     public final Provider getProvider()
65     {
66         return provider;
67     }
68 
init( AlgorithmParameterSpec genParamSpec)69     public final void init(
70         AlgorithmParameterSpec genParamSpec)
71         throws InvalidAlgorithmParameterException
72     {
73         spi.engineInit(genParamSpec, new SecureRandom());
74     }
75 
init( AlgorithmParameterSpec genParamSpec, SecureRandom random)76     public final void init(
77         AlgorithmParameterSpec genParamSpec,
78         SecureRandom random)
79         throws InvalidAlgorithmParameterException
80     {
81         spi.engineInit(genParamSpec, random);
82     }
83 
init( int size)84     public final void init(
85         int size)
86     {
87         spi.engineInit(size, new SecureRandom());
88     }
89 
init( int size, SecureRandom random)90     public final void init(
91         int size,
92         SecureRandom random)
93     {
94         spi.engineInit(size, random);
95     }
96 }
97