mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			87 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Java
		
	
	
	
| /* Copyright (C) 2000  Free Software Foundation
 | |
| 
 | |
|    This file is part of libgcj.
 | |
| 
 | |
| This software is copyrighted work licensed under the terms of the
 | |
| Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 | |
| details.  */
 | |
| 
 | |
| package java.security;
 | |
| 
 | |
| /**
 | |
|  * @author Warren Levy <warrenl@cygnus.com>
 | |
|  * @date February 10, 2000.
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Written using on-line Java Platform 1.2 API Specification.
 | |
|  * Status:  Partially implemented to the 1.1 spec.
 | |
|  * It is known not to comply with the 1.2 spec.
 | |
|  */
 | |
| 
 | |
| public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
 | |
| {
 | |
|   protected KeyPairGenerator(String algorithm)
 | |
|   {
 | |
|     name = algorithm;
 | |
|   }
 | |
| 
 | |
|   public static KeyPairGenerator getInstance(String algorithm)
 | |
|     throws NoSuchAlgorithmException
 | |
|   {
 | |
|     String name = "KeyPairGenerator." + algorithm;
 | |
|     Provider[] provs = Security.getProviders();
 | |
|     for (int i = 0; i < provs.length; ++i)
 | |
|       {
 | |
| 	String val = provs[i].getProperty(name);
 | |
| 	if (val != null)
 | |
| 	  {
 | |
| 	    try
 | |
| 	      {
 | |
| 		return (KeyPairGenerator) Class.forName(val).newInstance();
 | |
| 	      }
 | |
| 	    catch (Throwable _)
 | |
| 	      {
 | |
| 		// We just ignore failures.
 | |
| 	      }
 | |
| 	  }
 | |
|       }
 | |
| 
 | |
|     throw new NoSuchAlgorithmException(algorithm);
 | |
|   }
 | |
| 
 | |
|   public static KeyPairGenerator getInstance(String algorithm, String provider)
 | |
|     throws NoSuchAlgorithmException, NoSuchProviderException
 | |
|   {
 | |
|     String name = "KeyPairGenerator." + algorithm;
 | |
|     Provider p = Security.getProvider(provider);
 | |
|     if (p == null)
 | |
|       throw new NoSuchProviderException(provider);
 | |
|     String val = p.getProperty(name);
 | |
|     if (val != null)
 | |
|       {
 | |
| 	try
 | |
| 	  {
 | |
| 	    return (KeyPairGenerator) Class.forName(val).newInstance();
 | |
| 	  }
 | |
| 	catch (Throwable _)
 | |
| 	  {
 | |
| 	    // Nothing.
 | |
| 	  }
 | |
|       }
 | |
| 
 | |
|     throw new NoSuchAlgorithmException(algorithm);
 | |
|   }
 | |
| 
 | |
|   public String getAlgorithm()
 | |
|   {
 | |
|     return name;
 | |
|   }
 | |
| 
 | |
|   public abstract void initialize(int strength, SecureRandom random);
 | |
|   public abstract KeyPair generateKeyPair();
 | |
| 
 | |
|   // Algorithm name.
 | |
|   private String name;
 | |
| }
 |