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