diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-23 21:31:04 +0000 | 
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-23 21:31:04 +0000 | 
| commit | 947b8814056ea2fba6bbcfab86591f74bffc0311 (patch) | |
| tree | 3ca4b2e68dc14c3128b9c781d23f1d0b1f2bee49 /libjava/classpath/gnu/java/security | |
| parent | 49792907376493f0939563eb0219b96a48f1ae3b (diff) | |
| download | ppe42-gcc-947b8814056ea2fba6bbcfab86591f74bffc0311.tar.gz ppe42-gcc-947b8814056ea2fba6bbcfab86591f74bffc0311.zip  | |
	Imported Classpath 0.18.
	* sources.am, Makefile.in: Updated.
	* Makefile.am (nat_source_files): Removed natProxy.cc.
	* java/lang/reflect/natProxy.cc: Removed.
	* gnu/classpath/jdwp/VMFrame.java,
	gnu/classpath/jdwp/VMIdManager.java,
	gnu/classpath/jdwp/VMVirtualMachine.java,
	java/lang/reflect/VMProxy.java: New files.
2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
	* scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC
	list.
2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
	* gnu/java/net/DefaultContentHandlerFactory.java (getContent):
	Remove ClasspathToolkit references.
2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
	* gnu/awt/xlib/XCanvasPeer.java: Add new peer methods.
	* gnu/awt/xlib/XFramePeer.java: Likewise.
	* gnu/awt/xlib/XGraphicsConfiguration.java: Likewise.
2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
	* Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c.  Add
	classpath/native/jawt/jawt.c.
	* Makefile.in: Regenerate.
	* jawt.c: Remove file.
	* include/Makefile.am (tool_include__HEADERS): Remove jawt.h and
	jawt_md.h.  Add ../classpath/include/jawt.h and
	../classpath/include/jawt_md.h.
	* include/Makefile.in: Regenerate.
	* include/jawt.h: Regenerate.
	* include/jawt_md.h: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104586 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/gnu/java/security')
4 files changed, 131 insertions, 91 deletions
diff --git a/libjava/classpath/gnu/java/security/OID.java b/libjava/classpath/gnu/java/security/OID.java index 8cda43eeee8..473b6ba5a29 100644 --- a/libjava/classpath/gnu/java/security/OID.java +++ b/libjava/classpath/gnu/java/security/OID.java @@ -1,5 +1,5 @@  /* OID.java -- numeric representation of an object identifier -   Copyright (C) 2003, 2004  Free Software Foundation, Inc. +   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.  This file is part of GNU Classpath. @@ -48,7 +48,7 @@ import java.util.StringTokenizer;  /**   * This immutable class represents an object identifier, or OID.   * - * <p>OIDs are represented as a series of hierarcical tokens, each of + * <p>OIDs are represented as a series of hierarchical tokens, each of   * which is usually represented as a single, unsigned integer. The   * hierarchy works so that later tokens are considered within the group   * of earlier tokens. Thus, the OID for the Serpent block cipher, diff --git a/libjava/classpath/gnu/java/security/PolicyFile.java b/libjava/classpath/gnu/java/security/PolicyFile.java index dd3a4dec4c4..c6a3061ead2 100644 --- a/libjava/classpath/gnu/java/security/PolicyFile.java +++ b/libjava/classpath/gnu/java/security/PolicyFile.java @@ -37,6 +37,10 @@ exception statement from your version. */  package gnu.java.security; +import gnu.classpath.SystemProperties; +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; +  import java.io.File;  import java.io.IOException;  import java.io.InputStreamReader; @@ -66,6 +70,7 @@ import java.util.LinkedList;  import java.util.List;  import java.util.Map;  import java.util.StringTokenizer; +import java.util.logging.Logger;  /**   * An implementation of a {@link java.security.Policy} object whose @@ -143,24 +148,16 @@ public final class PolicyFile extends Policy    // Constants and fields.    // ------------------------------------------------------------------------- -  private static final boolean DEBUG = true; -  // Package-private to avoid a trampoline. -  static void debug(String msg) -  { -    System.err.print(">> PolicyFile: "); -    System.err.println(msg); -  } - -  private static void debug(Throwable t) -  { -    System.err.println(">> PolicyFile"); -    t.printStackTrace(System.err); -  } +  private static final Logger logger = SystemLogger.SYSTEM; -  private static final String DEFAULT_POLICY = System.getProperty("java.home") -    + System.getProperty("file.separator") + "lib" -    + System.getProperty("file.separator") + "security" -    + System.getProperty("file.separator") + "java.policy"; +  private static final String DEFAULT_POLICY = +    SystemProperties.getProperty("java.home") +    + SystemProperties.getProperty("file.separator") + "lib" +    + SystemProperties.getProperty("file.separator") + "security" +    + SystemProperties.getProperty("file.separator") + "java.policy"; +  private static final String DEFAULT_USER_POLICY = +    SystemProperties.getProperty ("user.home") + +    SystemProperties.getProperty ("file.separator") + ".java.policy";    private final Map cs2pc; @@ -185,7 +182,8 @@ public final class PolicyFile extends Policy          CodeSource cs = (CodeSource) e.getKey();          if (cs.implies(codeSource))            { -            if (DEBUG) debug(cs+" -> "+codeSource); +            logger.log (Component.POLICY, "{0} -> {1}", new Object[] +              { cs, codeSource });              PermissionCollection pc = (PermissionCollection) e.getValue();              for (Enumeration ee = pc.elements(); ee.hasMoreElements(); )                { @@ -193,50 +191,69 @@ public final class PolicyFile extends Policy                }            }          else -          if (DEBUG) debug(cs+" !-> "+codeSource); +          logger.log (Component.POLICY, "{0} !-> {1}", new Object[] +            { cs, codeSource });        } -    if (DEBUG) debug ("returning permissions " + perms + " for " + codeSource); +    logger.log (Component.POLICY, "returning permissions {0} for {1}", +                new Object[] { perms, codeSource });      return perms;    }    public void refresh()    {      cs2pc.clear(); -    List policyFiles = new LinkedList(); +    final List policyFiles = new LinkedList();      try        { -        policyFiles.add(new File(DEFAULT_POLICY).toURL()); -        if (DEBUG) debug ("defualt policy is " + DEFAULT_POLICY); -        policyFiles.addAll((List) AccessController.doPrivileged( +        policyFiles.add (new File (DEFAULT_POLICY).toURL()); +        policyFiles.add (new File (DEFAULT_USER_POLICY).toURL ()); + +        AccessController.doPrivileged(            new PrivilegedExceptionAction()            {              public Object run() throws Exception              { -              LinkedList l = new LinkedList(); +              String allow = Security.getProperty ("policy.allowSystemProperty"); +              if (allow == null || Boolean.getBoolean (allow)) +                { +                  String s = SystemProperties.getProperty ("java.security.policy"); +                  logger.log (Component.POLICY, "java.security.policy={0}", s); +                  if (s != null) +                    { +                      boolean only = s.startsWith ("="); +                      if (only) +                        s = s.substring (1); +                      policyFiles.clear (); +                      policyFiles.add (new URL (s)); +                      if (only) +                        return null; +                    } +                }                for (int i = 1; ; i++)                  { -                  String s = Security.getProperty("policy.file."+i); -                  if (DEBUG) debug("policy.file."+i+"="+s); +                  String pname = "policy.url." + i; +                  String s = Security.getProperty (pname); +                  logger.log (Component.POLICY, "{0}={1}", new Object [] +                    { pname, s });                    if (s == null)                      break; -                  l.add(new URL(s)); +                  policyFiles.add (new URL (s));                  } -              String s = System.getProperty("java.security.policy"); -              if (DEBUG) debug("java.security.policy="+s); -              if (s != null) -                l.add(new URL(s)); -              return l; +              return null;              } -          })); +          });        }      catch (PrivilegedActionException pae)        { -        if (DEBUG) debug(pae); +        logger.log (Component.POLICY, "reading policy properties", pae);        }      catch (MalformedURLException mue)        { -        if (DEBUG) debug(mue); +        logger.log (Component.POLICY, "setting default policies", mue);        } + +    logger.log (Component.POLICY, "building policy from URLs {0}", +                policyFiles);      for (Iterator it = policyFiles.iterator(); it.hasNext(); )        {          try @@ -246,7 +263,7 @@ public final class PolicyFile extends Policy            }          catch (IOException ioe)            { -            if (DEBUG) debug(ioe); +            logger.log (Component.POLICY, "reading policy", ioe);            }        }    } @@ -273,7 +290,7 @@ public final class PolicyFile extends Policy     */    private void parse(final URL url) throws IOException    { -    if (DEBUG) debug ("reading policy file from " + url); +    logger.log (Component.POLICY, "reading policy file from {0}", url);      final StreamTokenizer in = new StreamTokenizer(new InputStreamReader(url.openStream()));      in.resetSyntax();      in.slashSlashComments(true); diff --git a/libjava/classpath/gnu/java/security/provider/DSAKeyPairGenerator.java b/libjava/classpath/gnu/java/security/provider/DSAKeyPairGenerator.java index 2c643d5c367..ddd1800a717 100644 --- a/libjava/classpath/gnu/java/security/provider/DSAKeyPairGenerator.java +++ b/libjava/classpath/gnu/java/security/provider/DSAKeyPairGenerator.java @@ -1,5 +1,5 @@  /* GnuDSAKeyPairGenerator.java --- Gnu DSA Key Pair Generator -   Copyright (C) 1999 Free Software Foundation, Inc. +   Copyright (C) 1999, 2005  Free Software Foundation, Inc.  This file is part of GNU Classpath. @@ -45,10 +45,12 @@ import java.security.InvalidAlgorithmParameterException;  import java.security.InvalidParameterException;  import java.security.KeyPair;  import java.security.KeyPairGeneratorSpi; +import java.security.NoSuchAlgorithmException;  import java.security.SecureRandom;  import java.security.interfaces.DSAParams;  import java.security.spec.AlgorithmParameterSpec;  import java.security.spec.DSAParameterSpec; +import java.security.spec.InvalidParameterSpecException;  import java.util.Random;  public class DSAKeyPairGenerator extends KeyPairGeneratorSpi  @@ -60,18 +62,15 @@ private BigInteger q = null; // the small prime  private BigInteger p = null; // the big prime  private BigInteger g = null; -DSAKeyPairGenerator() +public DSAKeyPairGenerator()  {  	keysize = 1024; +        getDefaults ();  }  public void initialize(int keysize, SecureRandom random)  { -	//if( ((keysize % 64) != 0) || (keysize < 512) || (keysize > 1024) ) -        //        throw new InvalidAlgorithmParameterException("Invalid key size"); - -	this.keysize = keysize; -	this.random = random; +        initialize (keysize, false, random);  }  public void initialize(AlgorithmParameterSpec params, @@ -81,65 +80,87 @@ public void initialize(AlgorithmParameterSpec params,  	if( !( params instanceof DSAParameterSpec ) )  		throw new InvalidAlgorithmParameterException("Must be DSAParameterSpec"); +        try +        { +                initialize ((DSAParams) params, random); +        } +        catch (InvalidParameterException ipe) +        { +                InvalidAlgorithmParameterException iape = +                        new InvalidAlgorithmParameterException(); +                iape.initCause (ipe); +                throw iape; +        } +} + +public void initialize (DSAParams params, SecureRandom random) +{  	DSAParameterSpec dsaparameterspec = (DSAParameterSpec)params; +        if (dsaparameterspec.getP() == null +            || dsaparameterspec.getQ() == null +            || dsaparameterspec.getG() == null) +        { +                throw new InvalidParameterException ("none of p, q, or g may be null"); +        }  	p = dsaparameterspec.getP();  	q = dsaparameterspec.getQ();  	g = dsaparameterspec.getG();  	this.random = random;  } -public void initialize(DSAParams params, SecureRandom random)  -	throws InvalidParameterException -{ -	if(params.getP() != null)  -		p = params.getP(); -	else -		throw new InvalidParameterException(); - -	if(params.getQ() != null)  -		q = params.getQ(); -	else -		throw new InvalidParameterException(); -	 -	if(params.getG() != null)  -		g = params.getG(); -	else -		throw new InvalidParameterException(); -	 -	this.random = random; -} -  public void initialize(int modlen, boolean genParams, SecureRandom random)   	throws InvalidParameterException  {  	if( ((modlen % 64) != 0) || (modlen < 512) || (modlen > 1024) )                  throw new InvalidParameterException(); -	if( (genParams == false) && (modlen != 512) && (modlen != 768) && (modlen != 1024)  ) -		throw new InvalidParameterException(); -	this.keysize = modlen; -	this.random = random; -	p = null; -	q = null; -	g = null; +        this.keysize = modlen; +        this.random = random; +        if (this.random == null) +        { +                this.random = new SecureRandom (); +        } +	if (genParams) +        { +                try +                { +                        AlgorithmParameterGenerator apgDSA = AlgorithmParameterGenerator.getInstance("DSA"); +                        apgDSA.init (modlen, random); +                        AlgorithmParameters apDSA = apgDSA.generateParameters(); +                        DSAParameterSpec dsaparameterspec = (DSAParameterSpec)apDSA.getParameterSpec( DSAParameterSpec.class ); +                        p = dsaparameterspec.getP(); +                        q = dsaparameterspec.getQ(); +                        g = dsaparameterspec.getG(); +                } +                catch (NoSuchAlgorithmException nsae) +                { +                        InvalidParameterException ipe = +                                new InvalidParameterException ("can't generate DSA parameters"); +                        ipe.initCause (nsae); +                        throw ipe; +                } +                catch (InvalidParameterSpecException ipse) +                { +                        InvalidParameterException ipe = +                                new InvalidParameterException ("can't generate DSA parameters"); +                        ipe.initCause (ipse); +                        throw ipe; +                } +        } +        else if (!getDefaults ()) +        { +                throw new InvalidParameterException ("unsupported key size: " + modlen); +        }  }  public KeyPair generateKeyPair()  { -	if( getDefaults() == false) { -		try { -			AlgorithmParameterGenerator apgDSA = AlgorithmParameterGenerator.getInstance("DSA"); -			AlgorithmParameters apDSA = apgDSA.generateParameters(); -			DSAParameterSpec dsaparameterspec = (DSAParameterSpec)apDSA.getParameterSpec( DSAParameterSpec.class ); -			p = dsaparameterspec.getP(); -			q = dsaparameterspec.getQ(); -			g = dsaparameterspec.getG(); -		} catch ( Exception e ) { -			return null; -		} -	} +        if (random == null) +                { +                        random = new SecureRandom (); +                } -	BigInteger x = new BigInteger( 159, new Random() ); +	BigInteger x = new BigInteger( 159, random );  	BigInteger y = g.modPow( x, p ); @@ -160,10 +181,12 @@ private boolean getDefaults()  		p = new BigInteger("e9e642599d355f37c97ffd3567120b8e25c9cd43e927b3a9670fbec5d890141922d2c3b3ad2480093799869d1e846aab49fab0ad26d2ce6a22219d470bce7d777d4a21fbe9c270b57f607002f3cef8393694cf45ee3688c11a8c56ab127a3daf", 16);  		q = new BigInteger("9cdbd84c9f1ac2f38d0f80f42ab952e7338bf511", 16);  		g = new BigInteger("30470ad5a005fb14ce2d9dcd87e38bc7d1b1c5facbaecbe95f190aa7a31d23c4dbbcbe06174544401a5b2c020965d8c2bd2171d3668445771f74ba084d2029d83c1c158547f3a9f1a2715be23d51ae4d3e5a1f6a7064f316933a346d3f529252", 16); -	} else if( keysize == 512) { +                return true; +	} else if( keysize == 1024) {  		p = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16);  		q = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16);  		g = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16); +                return true;  	}  	return false;  } diff --git a/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java b/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java index 1268b169d9b..ab8943443ec 100644 --- a/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java +++ b/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java @@ -1,5 +1,5 @@  /* PKIXCertPathValidatorImpl.java -- PKIX certificate path validator. -   Copyright (C) 2004  Free Software Foundation, Inc. +   Copyright (C) 2004, 2005  Free Software Foundation, Inc.  This file is part of GNU Classpath. @@ -331,7 +331,7 @@ public class PKIXCertPathValidatorImpl extends CertPathValidatorSpi            continue;          try            { -            if (anchorCert == null) +            if (anchorCert != null)                anchorCert.checkValidity(now);              p[p.length-1].verify(anchorKey);              if (anchorCert != null && anchorCert.getBasicConstraints() >= 0  | 

