diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/java/awt/peer/ClasspathFontPeer.java | 123 | ||||
-rw-r--r-- | gnu/java/awt/peer/qt/QtFontPeer.java | 2 | ||||
-rw-r--r-- | gnu/java/awt/peer/qt/QtFramePeer.java | 15 | ||||
-rw-r--r-- | gnu/java/awt/peer/qt/QtGraphics.java | 135 | ||||
-rw-r--r-- | gnu/javax/net/ssl/AbstractSessionContext.java | 9 | ||||
-rw-r--r-- | gnu/javax/net/ssl/PrivateCredentials.java | 23 | ||||
-rw-r--r-- | gnu/javax/net/ssl/SSLCipherSuite.java | 10 | ||||
-rw-r--r-- | gnu/javax/net/ssl/SSLRecordHandler.java | 4 | ||||
-rw-r--r-- | gnu/javax/net/ssl/Session.java | 32 | ||||
-rw-r--r-- | gnu/javax/net/ssl/StaticTrustAnchors.java | 10 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/ClientHandshake.java | 2 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java | 6 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java | 6 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java | 8 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/ServerDHParams.java | 9 | ||||
-rw-r--r-- | gnu/javax/net/ssl/provider/ServerHandshake.java | 109 |
16 files changed, 340 insertions, 163 deletions
diff --git a/gnu/java/awt/peer/ClasspathFontPeer.java b/gnu/java/awt/peer/ClasspathFontPeer.java index 96677a4af..2f7768e02 100644 --- a/gnu/java/awt/peer/ClasspathFontPeer.java +++ b/gnu/java/awt/peer/ClasspathFontPeer.java @@ -1,5 +1,5 @@ /* ClasspathFontPeer.java -- Font peer used by GNU Classpath. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2014 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -129,7 +129,8 @@ public abstract class ClasspathFontPeer super(max, 0.75f, true); max_entries = max; } - protected boolean removeEldestEntry(Map.Entry eldest) + @Override + protected boolean removeEldestEntry(Map.Entry<K,V> eldest) { return size() > max_entries; } @@ -191,7 +192,7 @@ public abstract class ClasspathFontPeer return name; } - public static void copyStyleToAttrs (int style, Map attrs) + public static void copyStyleToAttrs (int style, Map<TextAttribute,Object> attrs) { if ((style & Font.BOLD) == Font.BOLD) attrs.put (TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); @@ -204,18 +205,18 @@ public abstract class ClasspathFontPeer attrs.put (TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); } - protected static void copyFamilyToAttrs (String fam, Map attrs) + protected static void copyFamilyToAttrs (String fam, Map<TextAttribute,Object> attrs) { if (fam != null) attrs.put (TextAttribute.FAMILY, fam); } - public static void copySizeToAttrs (float size, Map attrs) + public static void copySizeToAttrs (float size, Map<TextAttribute,Object> attrs) { attrs.put (TextAttribute.SIZE, new Float (size)); } - protected static void copyTransformToAttrs (AffineTransform trans, Map attrs) + protected static void copyTransformToAttrs (AffineTransform trans, Map<TextAttribute,Object> attrs) { if (trans != null) { @@ -255,12 +256,12 @@ public abstract class ClasspathFontPeer } - protected void setStandardAttributes (String name, Map attribs) + protected void setStandardAttributes (String name, Map<TextAttribute,Object> attribs) { String family = this.familyName; AffineTransform trans = this.transform; - float size = this.size; - int style = this.style; + float setSize = this.size; + int setStyle = this.style; if (attribs.containsKey (TextAttribute.FAMILY)) family = (String) attribs.get (TextAttribute.FAMILY); @@ -272,27 +273,27 @@ public abstract class ClasspathFontPeer { Float weight = (Float) attribs.get (TextAttribute.WEIGHT); if (weight.floatValue () >= TextAttribute.WEIGHT_BOLD.floatValue ()) - style += Font.BOLD; + setStyle += Font.BOLD; } if (attribs.containsKey (TextAttribute.POSTURE)) { Float posture = (Float) attribs.get (TextAttribute.POSTURE); if (posture.floatValue () >= TextAttribute.POSTURE_OBLIQUE.floatValue ()) - style += Font.ITALIC; + setStyle += Font.ITALIC; } if (attribs.containsKey (TextAttribute.SIZE)) { Float sz = (Float) attribs.get (TextAttribute.SIZE); - size = sz.floatValue (); + setSize = sz.floatValue (); // Pango doesn't accept 0 as a font size. - if (size < 1) - size = 1; + if (setSize < 1) + setSize = 1; } else - size = 12; + setSize = 12; if (attribs.containsKey (TextAttribute.TRANSFORM)) { @@ -301,10 +302,10 @@ public abstract class ClasspathFontPeer trans = ta.getTransform (); } - setStandardAttributes (name, family, style, size, trans); + setStandardAttributes (name, family, setStyle, setSize, trans); } - protected void getStandardAttributes (Map attrs) + protected void getStandardAttributes (Map<TextAttribute,Object> attrs) { copyFamilyToAttrs (this.familyName, attrs); copySizeToAttrs (this.size, attrs); @@ -315,15 +316,15 @@ public abstract class ClasspathFontPeer /* Begin public API */ - public ClasspathFontPeer (String name, Map attrs) + public ClasspathFontPeer (String name, Map<TextAttribute,Object> attrs) { setStandardAttributes (name, attrs); } public ClasspathFontPeer (String name, int style, int size) { - setStandardAttributes (name, (String)null, style, - (float)size, (AffineTransform)null); + setStandardAttributes (name, (String)null, style, size, + (AffineTransform)null); } /** @@ -333,7 +334,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public String getName (Font font) { return logicalName; @@ -346,7 +347,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public String getFamily (Font font) { return familyName; @@ -359,7 +360,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public String getFamily (Font font, Locale lc) { return familyName; @@ -372,7 +373,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public String getFontName (Font font) { return faceName; @@ -385,7 +386,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public String getFontName (Font font, Locale lc) { return faceName; @@ -398,7 +399,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public float getSize (Font font) { return size; @@ -411,7 +412,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public boolean isPlain (Font font) { return style == Font.PLAIN; @@ -424,7 +425,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public boolean isBold (Font font) { return ((style & Font.BOLD) == Font.BOLD); @@ -437,7 +438,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public boolean isItalic (Font font) { return ((style & Font.ITALIC) == Font.ITALIC); @@ -450,13 +451,13 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Font deriveFont (Font font, int style, float size) + @SuppressWarnings("unused") + public Font deriveFont (Font font, int newStyle, float newSize) { - Map attrs = new HashMap (); + Map<TextAttribute,Object> attrs = new HashMap<TextAttribute,Object>(); getStandardAttributes (attrs); - copyStyleToAttrs (style, attrs); - copySizeToAttrs (size, attrs); + copyStyleToAttrs (newStyle, attrs); + copySizeToAttrs (newSize, attrs); return tk().getFont (logicalName, attrs); } @@ -467,12 +468,12 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Font deriveFont (Font font, float size) + @SuppressWarnings("unused") + public Font deriveFont (Font font, float newSize) { - Map attrs = new HashMap (); + Map<TextAttribute,Object> attrs = new HashMap<TextAttribute,Object>(); getStandardAttributes (attrs); - copySizeToAttrs (size, attrs); + copySizeToAttrs (newSize, attrs); return tk().getFont (logicalName, attrs); } @@ -483,12 +484,12 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Font deriveFont (Font font, int style) + @SuppressWarnings("unused") + public Font deriveFont (Font font, int newStyle) { - Map attrs = new HashMap (); + Map<TextAttribute,Object> attrs = new HashMap<TextAttribute,Object>(); getStandardAttributes (attrs); - copyStyleToAttrs (style, attrs); + copyStyleToAttrs (newStyle, attrs); return tk().getFont (logicalName, attrs); } @@ -499,12 +500,12 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Font deriveFont (Font font, int style, AffineTransform t) + @SuppressWarnings("unused") + public Font deriveFont (Font font, int newStyle, AffineTransform t) { - Map attrs = new HashMap (); + Map<TextAttribute,Object> attrs = new HashMap<TextAttribute,Object>(); getStandardAttributes (attrs); - copyStyleToAttrs (style, attrs); + copyStyleToAttrs (newStyle, attrs); copyTransformToAttrs (t, attrs); return tk().getFont (logicalName, attrs); } @@ -516,10 +517,10 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public Font deriveFont (Font font, AffineTransform t) { - Map attrs = new HashMap (); + Map<TextAttribute,Object> attrs = new HashMap<TextAttribute,Object>(); getStandardAttributes (attrs); copyTransformToAttrs (t, attrs); return tk().getFont (logicalName, attrs); @@ -532,8 +533,9 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Font deriveFont (Font font, Map attrs) + @SuppressWarnings("unused") + public Font deriveFont (Font font, + Map<? extends AttributedCharacterIterator.Attribute,?> attrs) { return tk().getFont (logicalName, attrs); } @@ -545,10 +547,10 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public Map getAttributes (Font font) + @SuppressWarnings("unused") + public Map<TextAttribute,?> getAttributes (Font font) { - HashMap h = new HashMap (); + HashMap<TextAttribute,Object> h = new HashMap<TextAttribute,Object>(); getStandardAttributes (h); return h; } @@ -560,8 +562,8 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - - public AttributedCharacterIterator.Attribute[] getAvailableAttributes(Font font) + @SuppressWarnings("unused") + public static AttributedCharacterIterator.Attribute[] getAvailableAttributes(Font font) { AttributedCharacterIterator.Attribute a[] = new AttributedCharacterIterator.Attribute[5]; @@ -580,7 +582,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public AffineTransform getTransform (Font font) { if (transform == null) @@ -595,7 +597,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public boolean isTransformed (Font font) { return ! transform.isIdentity (); @@ -608,13 +610,12 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public float getItalicAngle (Font font) { if ((style & Font.ITALIC) == Font.ITALIC) return TextAttribute.POSTURE_OBLIQUE.floatValue (); - else - return TextAttribute.POSTURE_REGULAR.floatValue (); + return TextAttribute.POSTURE_REGULAR.floatValue (); } @@ -625,7 +626,7 @@ public abstract class ClasspathFontPeer * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ - + @SuppressWarnings("unused") public int getStyle (Font font) { return style; diff --git a/gnu/java/awt/peer/qt/QtFontPeer.java b/gnu/java/awt/peer/qt/QtFontPeer.java index 03ed1d2df..3d200d80f 100644 --- a/gnu/java/awt/peer/qt/QtFontPeer.java +++ b/gnu/java/awt/peer/qt/QtFontPeer.java @@ -1,5 +1,5 @@ /* QtFontPeer.java -- - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2014 Free Software Foundation, Inc. This file is part of GNU Classpath. diff --git a/gnu/java/awt/peer/qt/QtFramePeer.java b/gnu/java/awt/peer/qt/QtFramePeer.java index d5162106f..946ed25be 100644 --- a/gnu/java/awt/peer/qt/QtFramePeer.java +++ b/gnu/java/awt/peer/qt/QtFramePeer.java @@ -1,5 +1,5 @@ /* QtFramePeer.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2014 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -56,8 +56,10 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer super( kit, owner ); } + @Override protected native void init(); + @Override protected void setup() { super.setup(); @@ -81,12 +83,14 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer dispose(); } + @Override public int getState() { // FIXME return theState; } + @Override public Insets getInsets() { int mbHeight = ( ((Frame)owner).getMenuBar() != null ) ? @@ -94,6 +98,7 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer return new Insets(mbHeight, 0, 0, 0); } + @Override public void setIconImage(Image im) { if (im instanceof QtImage) @@ -102,11 +107,13 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer setIcon( new QtImage( im.getSource() ) ); } + @Override public void setMaximizedBounds(Rectangle rect) { // FIXME } + @Override public void setMenuBar(MenuBar mb) { if( mb != null ) @@ -126,35 +133,41 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer setMenu( null ); } + @Override public void setResizable(boolean resizeable) { // FIXME } + @Override public void setState(int s) { theState = s; // FIXME } + @Override public void setBoundsPrivate(int x, int y, int width, int height) { // TODO Auto-generated method stub } + @Override public void updateAlwaysOnTop() { // TODO Auto-generated method stub } + @Override public boolean requestWindowFocus() { // TODO Auto-generated method stub return false; } + @Override public Rectangle getBoundsPrivate() { // TODO: Implement this properly. diff --git a/gnu/java/awt/peer/qt/QtGraphics.java b/gnu/java/awt/peer/qt/QtGraphics.java index f68cc0dbd..29655ffa5 100644 --- a/gnu/java/awt/peer/qt/QtGraphics.java +++ b/gnu/java/awt/peer/qt/QtGraphics.java @@ -1,5 +1,5 @@ /* QtGraphics.java -- - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2014 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -144,6 +144,7 @@ public abstract class QtGraphics extends Graphics2D public synchronized native void delete(); + @Override public void dispose() { } @@ -162,7 +163,7 @@ public abstract class QtGraphics extends Graphics2D protected native void initVolatileImage(QtVolatileImage image); // Creates a new native QPainter object on the same context. - private native void cloneNativeContext( QtGraphics parent ); + private native void cloneNativeContext( QtGraphics parentGraphics ); private native void setColor(int r, int g, int b, int a); private native void drawNative( QPainterPath p ); private native void fillNative( QPainterPath p ); @@ -193,19 +194,23 @@ public abstract class QtGraphics extends Graphics2D /** * Context-sensitive methods are declared abstract. */ + @Override public abstract Graphics create(); + @Override public abstract void copyArea(int x, int y, int width, int height, int dx, int dy); + @Override public abstract GraphicsConfiguration getDeviceConfiguration(); - + @Override public Color getColor() { return new Color(color.getRed(), color.getGreen(), color.getBlue()); } + @Override public void setColor(Color c) { if( c == null ) @@ -215,43 +220,48 @@ public abstract class QtGraphics extends Graphics2D setColor(c.getRed(), c.getGreen(), c.getBlue(), alpha); } + @Override public void setBackground(Color color) { bgcolor = new Color(color.getRed(), color.getGreen(), color.getBlue()); } + @Override public Color getBackground() { return new Color(bgcolor.getRed(), bgcolor.getGreen(), bgcolor.getBlue()); } + @Override public void setPaintMode() { } + @Override public void setXORMode(Color color) { // FIXME } + @Override public boolean hit(Rectangle rect, Shape s, boolean onStroke) { if( onStroke ) { Shape stroked = currentStroke.createStrokedShape( s ); - return stroked.intersects( (double)rect.x, (double)rect.y, - (double)rect.width, (double)rect.height ); + return stroked.intersects( rect.x, rect.y, rect.width, rect.height ); } - return s.intersects( (double)rect.x, (double)rect.y, - (double)rect.width, (double)rect.height ); + return s.intersects( rect.x, rect.y, rect.width, rect.height ); } // ******************* Font *********************** + @Override public Font getFont() { return font; } + @Override public void setFont(Font font) { if( font == null ) @@ -261,9 +271,10 @@ public abstract class QtGraphics extends Graphics2D setFontNative( (QtFontPeer)font.getPeer() ); } - public FontMetrics getFontMetrics(Font font) + @Override + public FontMetrics getFontMetrics(Font f) { - return new QtFontMetrics(font, this); + return new QtFontMetrics(f, this); } // ***************** Clipping ********************* @@ -271,31 +282,37 @@ public abstract class QtGraphics extends Graphics2D /** * Intersects the current clip with the shape */ + @Override public void clip(Shape s) { intersectClipNative( new QPainterPath( s ) ); } + @Override public void clipRect(int x, int y, int width, int height) { intersectClipRectNative( x, y, width, height ); } + @Override public void setClip(int x, int y, int width, int height) { setClipRectNative( x, y, width, height ); } + @Override public Shape getClip() { return getClipNative().getPath(); } + @Override public native Rectangle getClipBounds(); /** * Sets the clip */ + @Override public void setClip(Shape clip) { if (clip == null) @@ -306,6 +323,7 @@ public abstract class QtGraphics extends Graphics2D // ***************** Drawing primitives ********************* + @Override public void draw(Shape s) { if( nativeStroking ) @@ -314,37 +332,40 @@ public abstract class QtGraphics extends Graphics2D fillNative( new QPainterPath( currentStroke.createStrokedShape( s ) ) ); } + @Override public void fill(Shape s) { fillNative( new QPainterPath(s) ); } + @Override public void drawLine(int x1, int y1, int x2, int y2) { if( nativeStroking ) - drawNative( new QPainterPath((double)x1, (double)y1, (double)x2, (double)y2, true) ); + drawNative( new QPainterPath(x1, y1, x2, y2, true) ); else - draw( new Line2D.Double((double)x1, (double)y1, (double)x2, (double)y2) ); + draw( new Line2D.Double(x1, y1, x2, y2) ); } + @Override public void drawRect(int x, int y, int width, int height) { if( nativeStroking ) - drawNative( new QPainterPath((double)x, (double)y, - (double)width, (double)height) ); + drawNative( new QPainterPath(x, y, width, height) ); else fillNative( new QPainterPath ( currentStroke.createStrokedShape (new Rectangle2D.Double - ((double)x, (double)y, - (double)width, (double)height) ) ) ); + (x, y, width, height) ) ) ); } + @Override public void fillRect(int x, int y, int width, int height) { fillNative( new QPainterPath( x, y, width, height ) ); } + @Override public void clearRect(int x, int y, int width, int height) { Color c = color; @@ -353,6 +374,7 @@ public abstract class QtGraphics extends Graphics2D setColor( c ); } + @Override public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { @@ -360,6 +382,7 @@ public abstract class QtGraphics extends Graphics2D arcWidth, arcHeight) ); } + @Override public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { @@ -367,17 +390,19 @@ public abstract class QtGraphics extends Graphics2D arcWidth, arcHeight) ); } + @Override public void drawOval(int x, int y, int width, int height) { - draw( new Ellipse2D.Double((double)x, (double)y, - (double)width, (double)height) ); + draw( new Ellipse2D.Double(x, y, width, height) ); } + @Override public void fillOval(int x, int y, int width, int height) { fill( new Ellipse2D.Double(x, y, width, height) ); } + @Override public void drawArc(int x, int y, int width, int height, int arcStart, int arcAngle) { @@ -385,6 +410,7 @@ public abstract class QtGraphics extends Graphics2D Arc2D.OPEN) ); } + @Override public void fillArc(int x, int y, int width, int height, int arcStart, int arcAngle) { @@ -392,38 +418,46 @@ public abstract class QtGraphics extends Graphics2D Arc2D.CHORD) ); } + @Override public void drawPolyline(int xPoints[], int yPoints[], int npoints) { for( int i = 0; i < npoints - 1; i++) drawLine(xPoints[i], yPoints[i], xPoints[i + 1], yPoints[i + 1]); } + @Override public void drawPolygon(int xPoints[], int yPoints[], int npoints) { draw( new Polygon(xPoints, yPoints, npoints) ); } + @Override public void fillPolygon(int xPoints[], int yPoints[], int npoints) { fill( new Polygon(xPoints, yPoints, npoints) ); } + @Override public native void fill3DRect(int x, int y, int width, int height, boolean raised); + @Override public native void draw3DRect(int x, int y, int width, int height, boolean raised); // *********************** Text rendering ************************* + @Override public void drawString(String string, int x, int y) { - drawStringNative(string, (double)x, (double)y); + drawStringNative(string, x, y); } + @Override public void drawString(String string, float x, float y) { - drawStringNative(string, (double)x, (double)y); + drawStringNative(string, x, y); } + @Override public void drawString (AttributedCharacterIterator ci, int x, int y) { // FIXME - to something more correct ? @@ -433,6 +467,7 @@ public abstract class QtGraphics extends Graphics2D drawString(s, x, y); } + @Override public void drawString(AttributedCharacterIterator ci, float x, float y) { @@ -443,12 +478,14 @@ public abstract class QtGraphics extends Graphics2D drawString(s, x, y); } + @Override public void drawGlyphVector(GlyphVector v, float x, float y) { throw new RuntimeException("Not implemented"); } // ******************* Image drawing ****************************** + @Override public boolean drawImage(Image image, AffineTransform Tx, ImageObserver obs) @@ -461,113 +498,131 @@ public abstract class QtGraphics extends Graphics2D obs); } - public boolean drawImage(Image image, int x, int y, Color bgcolor, + @Override + public boolean drawImage(Image image, int x, int y, Color background, ImageObserver observer) { if (image instanceof QtImage) - return ((QtImage)image).drawImage (this, x, y, bgcolor, observer); + return ((QtImage)image).drawImage (this, x, y, background, observer); return (new QtImage(image.getSource())).drawImage (this, x, y, - bgcolor, observer); + background, observer); } - + + @Override public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, - Color bgcolor, ImageObserver observer) + Color background, ImageObserver observer) { if (image instanceof QtImage) return ((QtImage)image).drawImage(this, dx1, dy1, dx2, dy2, - sx1, sy1, sx2, sy2, bgcolor, observer); + sx1, sy1, sx2, sy2, background, observer); return (new QtImage(image.getSource())).drawImage(this, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, - bgcolor, observer); + background, observer); } + @Override public boolean drawImage(Image image, int x, int y, - int width, int height, Color bgcolor, + int width, int height, Color background, ImageObserver observer) { if (image instanceof QtImage) return ((QtImage)image).drawImage (this, x, y, width, height, - bgcolor, observer); + background, observer); return (new QtImage(image.getSource())).drawImage (this, x, y, width, height, - bgcolor, observer); + background, observer); } + @Override public boolean drawImage(Image image, int x, int y, int width, int height, ImageObserver observer) { return drawImage(image, x, y, width, height, null, observer); } + @Override public boolean drawImage(Image image, int x, int y, ImageObserver observer) { return drawImage(image, x, y, null, observer); } - public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) + @Override + public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + ImageObserver observer) { return drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, observer); } // *********************** Transform methods ************************* + @Override public AffineTransform getTransform() { return new AffineTransform( xform ); } + @Override public void setTransform(AffineTransform Tx) { xform = new AffineTransform( Tx ); setQtTransform( new QMatrix( xform ) ); } + @Override public void rotate(double theta) { xform.rotate( theta ); setQtTransform( new QMatrix( xform ) ); } + @Override public void rotate(double theta, double x, double y) { xform.rotate(theta, x, y); setQtTransform( new QMatrix( xform ) ); } + @Override public void scale(double sx, double sy) { xform.scale(sx, sy); setQtTransform( new QMatrix( xform ) ); } + @Override public void shear(double shx, double shy) { xform.shear(shx, shy); setQtTransform( new QMatrix( xform ) ); } + @Override public void transform(AffineTransform Tx) { xform.concatenate( Tx ); setQtTransform( new QMatrix( xform ) ); } + @Override public void translate(double tx, double ty) { xform.translate( tx, ty ); setQtTransform( new QMatrix( xform ) ); } + @Override public void translate(int x, int y) { translate((double)x, (double)y); } // *************** Stroking, Filling, Compositing ***************** + @Override public void setStroke(Stroke s) { try // ..to convert the stroke into a native one. @@ -584,11 +639,13 @@ public abstract class QtGraphics extends Graphics2D currentStroke = s; } + @Override public Stroke getStroke() { // FIXME: return copy? return currentStroke; } + @Override public void setComposite(Composite comp) { if( comp == null) @@ -617,11 +674,13 @@ public abstract class QtGraphics extends Graphics2D } } + @Override public Composite getComposite() { return composite; } + @Override public void setPaint(Paint p) { if( p == null ) @@ -649,6 +708,7 @@ public abstract class QtGraphics extends Graphics2D " paints yet."); } + @Override public Paint getPaint() { // FIXME @@ -657,21 +717,25 @@ public abstract class QtGraphics extends Graphics2D // ********************** Rendering Hints ************************* - public void addRenderingHints(Map hints) + @Override + public void addRenderingHints(Map<?,?> hints) { renderingHints.putAll( hints ); } + @Override public Object getRenderingHint(RenderingHints.Key hintKey) { return renderingHints.get( hintKey ); } + @Override public RenderingHints getRenderingHints() { return (RenderingHints) renderingHints.clone(); } + @Override public void setRenderingHints(Map<?,?> hints) { renderingHints = new RenderingHints( null ); @@ -679,6 +743,7 @@ public abstract class QtGraphics extends Graphics2D updateRenderingHints(); } + @Override public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { renderingHints.put( hintKey, hintValue ); @@ -692,21 +757,25 @@ public abstract class QtGraphics extends Graphics2D ////////////////////////////// unimplemented ///////////////////// + @Override public FontRenderContext getFontRenderContext() { throw new UnsupportedOperationException("Not implemented yet"); } - public void drawRenderableImage(RenderableImage image, AffineTransform xform) + @Override + public void drawRenderableImage(RenderableImage image, AffineTransform transform) { throw new UnsupportedOperationException("Not implemented yet"); } - public void drawRenderedImage(RenderedImage image, AffineTransform xform) + @Override + public void drawRenderedImage(RenderedImage image, AffineTransform transform) { throw new UnsupportedOperationException("Not implemented yet"); } + @Override public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y) { throw new UnsupportedOperationException("Not implemented yet"); diff --git a/gnu/javax/net/ssl/AbstractSessionContext.java b/gnu/javax/net/ssl/AbstractSessionContext.java index 96a4e6dd0..031e53a84 100644 --- a/gnu/javax/net/ssl/AbstractSessionContext.java +++ b/gnu/javax/net/ssl/AbstractSessionContext.java @@ -1,5 +1,5 @@ /* AbstractSessionContext -- stores SSL sessions, possibly persistently. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -172,6 +172,7 @@ public abstract class AbstractSessionContext implements SSLSessionContext * @return The found session, or null if no such session was found, * or if that session has expired. */ + @Override public final SSLSession getSession (byte[] sessionId) { Session s = implGet (sessionId); @@ -186,9 +187,9 @@ public abstract class AbstractSessionContext implements SSLSessionContext public final SSLSession getSession(String host, int port) { - for (Enumeration e = getIds(); e.hasMoreElements(); ) + for (Enumeration<byte[]> e = getIds(); e.hasMoreElements(); ) { - byte[] id = (byte[]) e.nextElement(); + byte[] id = e.nextElement(); SSLSession s = getSession(id); if (s == null) // session expired. continue; @@ -221,6 +222,7 @@ public abstract class AbstractSessionContext implements SSLSessionContext */ protected abstract Session implGet (byte[] sessionId); + @Override public int getSessionTimeout() { return (int) (timeout / 1000); @@ -267,6 +269,7 @@ public abstract class AbstractSessionContext implements SSLSessionContext /** * */ + @Override public final void setSessionTimeout(int seconds) { if (timeout < 0) diff --git a/gnu/javax/net/ssl/PrivateCredentials.java b/gnu/javax/net/ssl/PrivateCredentials.java index 7fff253dd..9da9e7eba 100644 --- a/gnu/javax/net/ssl/PrivateCredentials.java +++ b/gnu/javax/net/ssl/PrivateCredentials.java @@ -1,5 +1,5 @@ /* PrivateCredentials.java -- private key/certificate pairs. - Copyright (C) 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2006, 2007, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -118,7 +118,7 @@ public class PrivateCredentials implements ManagerFactoryParameters { CertificateFactory cf = CertificateFactory.getInstance("X.509"); Collection<? extends Certificate> certs = cf.generateCertificates(certChain); - X509Certificate[] chain = (X509Certificate[]) certs.toArray(new X509Certificate[0]); + X509Certificate[] chain = certs.toArray(new X509Certificate[certs.size()]); String alg = null; String line = readLine(privateKey); @@ -234,9 +234,9 @@ public class PrivateCredentials implements ManagerFactoryParameters // Own methods. // ------------------------------------------------------------------------- - private String readLine(InputStream in) throws IOException + private static String readLine(InputStream in) throws IOException { - boolean eol_is_cr = System.getProperty("line.separator").equals("\r"); + boolean eolIsCR = System.getProperty("line.separator").equals("\r"); CPStringBuilder str = new CPStringBuilder(); while (true) { @@ -245,12 +245,11 @@ public class PrivateCredentials implements ManagerFactoryParameters { if (str.length() > 0) break; - else - return null; + return null; } else if (i == '\r') { - if (eol_is_cr) + if (eolIsCR) break; } else if (i == '\n') @@ -269,7 +268,7 @@ public class PrivateCredentials implements ManagerFactoryParameters if (cipher.equals("DES-EDE3-CBC")) { mode = ModeFactory.getInstance("CBC", "TripleDES", 8); - HashMap attr = new HashMap(); + HashMap<String,Object> attr = new HashMap<String,Object>(); attr.put(IMode.KEY_MATERIAL, deriveKey(salt, 24)); attr.put(IMode.IV, salt); attr.put(IMode.STATE, new Integer(IMode.DECRYPTION)); @@ -278,7 +277,7 @@ public class PrivateCredentials implements ManagerFactoryParameters else if (cipher.equals("DES-CBC")) { mode = ModeFactory.getInstance("CBC", "DES", 8); - HashMap attr = new HashMap(); + HashMap<String,Object> attr = new HashMap<String,Object>(); attr.put(IMode.KEY_MATERIAL, deriveKey(salt, 8)); attr.put(IMode.IV, salt); attr.put(IMode.STATE, new Integer(IMode.DECRYPTION)); @@ -304,13 +303,13 @@ public class PrivateCredentials implements ManagerFactoryParameters return result; } - private byte[] deriveKey(byte[] salt, int keylen) + private static byte[] deriveKey(byte[] salt, int keylen) throws IOException { CallbackHandler passwordHandler = new ConsoleCallbackHandler(); try { - Class c = Class.forName(Security.getProperty("jessie.password.handler")); + Class<?> c = Class.forName(Security.getProperty("jessie.password.handler")); passwordHandler = (CallbackHandler) c.newInstance(); } catch (Exception x) { } @@ -348,7 +347,7 @@ public class PrivateCredentials implements ManagerFactoryParameters return key; } - private byte[] toByteArray(String hex) + private static byte[] toByteArray(String hex) { hex = hex.toLowerCase(); byte[] buf = new byte[hex.length() / 2]; diff --git a/gnu/javax/net/ssl/SSLCipherSuite.java b/gnu/javax/net/ssl/SSLCipherSuite.java index 80068e5cb..d0dbba7e1 100644 --- a/gnu/javax/net/ssl/SSLCipherSuite.java +++ b/gnu/javax/net/ssl/SSLCipherSuite.java @@ -1,5 +1,5 @@ /* SSLCipherSuite.java -- an SSL cipher suite. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -63,7 +63,7 @@ public abstract class SSLCipherSuite this.algorithm = algorithm; if (id.length != 2) throw new IllegalArgumentException ("cipher suite ID must be two bytes"); - this.id = (byte[]) id.clone (); + this.id = id.clone (); this.version = version; } @@ -111,9 +111,7 @@ public abstract class SSLCipherSuite catch (InvocationTargetException ite) { // XXX - NoSuchAlgorithmException nsae = new NoSuchAlgorithmException (name); - nsae.initCause (ite); - throw nsae; + throw new NoSuchAlgorithmException (name, ite); } return suite; } @@ -125,7 +123,7 @@ public abstract class SSLCipherSuite public final byte[] getId () { - return (byte[]) id.clone (); + return id.clone (); } public final Provider getProvider () diff --git a/gnu/javax/net/ssl/SSLRecordHandler.java b/gnu/javax/net/ssl/SSLRecordHandler.java index 8a44245ce..ec264a6b4 100644 --- a/gnu/javax/net/ssl/SSLRecordHandler.java +++ b/gnu/javax/net/ssl/SSLRecordHandler.java @@ -1,5 +1,5 @@ /* SSLRecordHandler.java -- a class that handles SSL record layer messages. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -86,6 +86,7 @@ public abstract class SSLRecordHandler return contentType; } + @Override public boolean equals (final Object o) { if (!(o instanceof SSLRecordHandler)) @@ -93,6 +94,7 @@ public abstract class SSLRecordHandler return ((SSLRecordHandler) o).contentType == contentType; } + @Override public int hashCode () { return contentType & 0xFF; diff --git a/gnu/javax/net/ssl/Session.java b/gnu/javax/net/ssl/Session.java index bfa94c29a..38261694c 100644 --- a/gnu/javax/net/ssl/Session.java +++ b/gnu/javax/net/ssl/Session.java @@ -1,5 +1,5 @@ /* SessionImpl.java -- concrete definition of SSLSession. - Copyright (C) 2006, 2014 Free Software Foundation, Inc. + Copyright (C) 2006, 2014, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -95,21 +95,25 @@ public abstract class Session implements SSLSession, Serializable lastAccessedTime = System.currentTimeMillis (); } + @Override public int getApplicationBufferSize() { return applicationBufferSize; } + @Override public String getCipherSuite() { return null; } + @Override public long getCreationTime() { return creationTime; } + @Override public byte[] getId() { return sessionId.id(); @@ -120,18 +124,21 @@ public abstract class Session implements SSLSession, Serializable return sessionId; } + @Override public long getLastAccessedTime() { return lastAccessedTime; } + @Override public Certificate[] getLocalCertificates() { if (localCerts == null) return null; - return (Certificate[]) localCerts.clone(); + return localCerts.clone(); } + @Override public Principal getLocalPrincipal() { if (localCerts != null) @@ -142,20 +149,23 @@ public abstract class Session implements SSLSession, Serializable return null; } + @Override public int getPacketBufferSize() { return applicationBufferSize + 2048; } + @Override public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException { if (!peerVerified) throw new SSLPeerUnverifiedException("peer not verified"); if (peerCerts == null) return null; - return (Certificate[]) peerCerts.clone(); + return peerCerts.clone(); } + @Override public X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException { @@ -163,19 +173,22 @@ public abstract class Session implements SSLSession, Serializable throw new SSLPeerUnverifiedException("peer not verified"); if (peerCertChain == null) return null; - return (X509Certificate[]) peerCertChain.clone(); + return peerCertChain.clone(); } + @Override public String getPeerHost() { return peerHost; } + @Override public int getPeerPort() { return peerPort; } + @Override public Principal getPeerPrincipal() throws SSLPeerUnverifiedException { if (!peerVerified) @@ -185,32 +198,38 @@ public abstract class Session implements SSLSession, Serializable return peerCertChain[0].getSubjectDN(); } + @Override public SSLSessionContext getSessionContext() { return context; } + @Override public String[] getValueNames() { Set<String> keys = this.values.keySet(); return keys.toArray(new String[keys.size()]); } + @Override public Object getValue(String name) { return values.get(name); } + @Override public void invalidate() { valid = false; } + @Override public boolean isValid() { return valid; } + @Override public void putValue(String name, Object value) { values.put(name, value); @@ -225,6 +244,7 @@ public abstract class Session implements SSLSession, Serializable } } + @Override public void removeValue(String name) { Object value = values.remove(name); @@ -308,7 +328,7 @@ public abstract class Session implements SSLSession, Serializable { if (id.length > 32) throw new IllegalArgumentException ("session ID's are limited to 32 bytes"); - this.id = (byte[]) id.clone(); + this.id = id.clone(); } // Instance methods. @@ -316,7 +336,7 @@ public abstract class Session implements SSLSession, Serializable public byte[] id() { - return (byte[]) id.clone(); + return id.clone(); } @Override diff --git a/gnu/javax/net/ssl/StaticTrustAnchors.java b/gnu/javax/net/ssl/StaticTrustAnchors.java index 480f1c754..fcdf3a8b1 100644 --- a/gnu/javax/net/ssl/StaticTrustAnchors.java +++ b/gnu/javax/net/ssl/StaticTrustAnchors.java @@ -1,5 +1,5 @@ /* StaticTrustAnchors.java -- static list of CA certificates. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -68,7 +68,7 @@ public class StaticTrustAnchors implements ManagerFactoryParameters public StaticTrustAnchors(X509Certificate[] certs) { - this.certs = (X509Certificate[]) certs.clone(); + this.certs = certs.clone(); } // Class method. @@ -94,7 +94,7 @@ public class StaticTrustAnchors implements ManagerFactoryParameters public X509Certificate[] getCertificates() { - return (X509Certificate[]) certs.clone(); + return certs.clone(); } // Constant. @@ -112,7 +112,7 @@ public class StaticTrustAnchors implements ManagerFactoryParameters static { - LinkedList certs = new LinkedList(); + LinkedList<X509Certificate> certs = new LinkedList<X509Certificate>(); CertificateFactory factory = null; try @@ -1935,6 +1935,6 @@ public class StaticTrustAnchors implements ManagerFactoryParameters "mmFei74pnykkiFY5LKjSq5YDWtRIn7lAhAuYaPsBQ9Yb4gmxlxw=\n" + "-----END CERTIFICATE-----\n"); - CA_CERTS = new StaticTrustAnchors((X509Certificate[]) certs.toArray(new X509Certificate[0])); + CA_CERTS = new StaticTrustAnchors(certs.toArray(new X509Certificate[certs.size()])); } } diff --git a/gnu/javax/net/ssl/provider/ClientHandshake.java b/gnu/javax/net/ssl/provider/ClientHandshake.java index c938e284a..fc13b9be9 100644 --- a/gnu/javax/net/ssl/provider/ClientHandshake.java +++ b/gnu/javax/net/ssl/provider/ClientHandshake.java @@ -1,5 +1,5 @@ /* ClientHandshake.java -- - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff --git a/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java b/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java index 5ef84ca1c..b33efc629 100644 --- a/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java +++ b/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java @@ -1,5 +1,5 @@ /* SSLv3HMacMD5.java -- - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; +import gnu.javax.crypto.mac.IMac; + import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; @@ -86,7 +88,7 @@ public class SSLv3HMacMD5Impl extends MacSpi || !key.getAlgorithm().equalsIgnoreCase("SSLv3HMac-MD5")) throw new InvalidKeyException("expecting secret key with algorithm \"SSLv3HMac-MD5\""); Map<String,byte[]> attr = - Collections.singletonMap(SSLHMac.MAC_KEY_MATERIAL, key.getEncoded()); + Collections.singletonMap(IMac.MAC_KEY_MATERIAL, key.getEncoded()); adaptee.init(attr); } diff --git a/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java b/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java index 6b9c9e9cc..d1e7ed768 100644 --- a/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java +++ b/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java @@ -1,5 +1,5 @@ /* SSLv3HMacSHA.java -- - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; +import gnu.javax.crypto.mac.IMac; + import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; @@ -86,7 +88,7 @@ public class SSLv3HMacSHAImpl extends MacSpi || !key.getAlgorithm().equalsIgnoreCase("SSLv3HMac-SHA")) throw new InvalidKeyException("expecting secret key with algorithm \"SSLv3HMac-SHA\""); Map<String,byte[]> attr = - Collections.singletonMap(SSLHMac.MAC_KEY_MATERIAL, key.getEncoded()); + Collections.singletonMap(IMac.MAC_KEY_MATERIAL, key.getEncoded()); adaptee.init(attr); } diff --git a/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java b/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java index 1de3f8124..6c53ed66a 100644 --- a/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java +++ b/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java @@ -1,5 +1,5 @@ /* ServerDHE_PSKParameters.java -- - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -57,7 +57,7 @@ import java.nio.charset.Charset; * * @author Casey Marshall (csm@gnu.org) */ -public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyExchangeParams +public class ServerDHE_PSKParameters implements Builder, ServerKeyExchangeParams { private ByteBuffer buffer; @@ -81,6 +81,7 @@ public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyE buffer.put(dhParams); } + @Override public KeyExchangeAlgorithm algorithm() { return KeyExchangeAlgorithm.DHE_PSK; @@ -89,6 +90,7 @@ public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyE /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#length() */ + @Override public int length() { return (buffer.getShort(0) & 0xFFFF) + 2 + params().length(); @@ -115,6 +117,7 @@ public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyE /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Builder#buffer() */ + @Override public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); @@ -128,6 +131,7 @@ public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyE /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) */ + @Override public String toString(String prefix) { StringWriter str = new StringWriter(); diff --git a/gnu/javax/net/ssl/provider/ServerDHParams.java b/gnu/javax/net/ssl/provider/ServerDHParams.java index 0e2c34881..225956e15 100644 --- a/gnu/javax/net/ssl/provider/ServerDHParams.java +++ b/gnu/javax/net/ssl/provider/ServerDHParams.java @@ -1,5 +1,5 @@ /* ServerDHParams.java -- The server's Diffie-Hellman parameters. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -104,11 +104,13 @@ public class ServerDHParams implements Builder, ServerKeyExchangeParams buffer.put(y_bytes, y_off, y_len); } - @Deprecated public KeyExchangeAlgorithm algorithm () + @Deprecated @Override + public KeyExchangeAlgorithm algorithm () { return null; // XXX can't support this. } + @Override public int length () { int offset1 = buffer.getShort (0) & 0xFFFF; @@ -117,6 +119,7 @@ public class ServerDHParams implements Builder, ServerKeyExchangeParams + offset1 + offset2 + 6); } + @Override public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().position(0).limit(length()); @@ -221,11 +224,13 @@ public class ServerDHParams implements Builder, ServerKeyExchangeParams buffer.put (buf, offset, length); } + @Override public String toString () { return toString (null); } + @Override public String toString (final String prefix) { StringWriter str = new StringWriter (); diff --git a/gnu/javax/net/ssl/provider/ServerHandshake.java b/gnu/javax/net/ssl/provider/ServerHandshake.java index d69fa120d..bfc7a28ef 100644 --- a/gnu/javax/net/ssl/provider/ServerHandshake.java +++ b/gnu/javax/net/ssl/provider/ServerHandshake.java @@ -1,5 +1,5 @@ /* ServerHandshake.java -- the server-side handshake. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2015 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -194,8 +194,7 @@ class ServerHandshake extends AbstractHandshake * we have enabled. */ private CipherSuite chooseSuite (final CipherSuiteList clientSuites, - final String[] enabledSuites, - final ProtocolVersion version) + final String[] enabledSuites) throws SSLException { // Figure out which SignatureAlgorithms we can support. @@ -336,8 +335,7 @@ class ServerHandshake extends AbstractHandshake engine.getEnabledProtocols ()); engine.session().suite = chooseSuite (hello.cipherSuites (), - engine.getEnabledCipherSuites (), - engine.session().version); + engine.getEnabledCipherSuites ()); compression = chooseCompression (hello.compressionMethods ()); if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, @@ -513,10 +511,10 @@ class ServerHandshake extends AbstractHandshake { ClientDHE_PSKParameters params = (ClientDHE_PSKParameters) kex.exchangeKeys(); - DHPublicKey serverKey = (DHPublicKey) dhPair.getPublic(); + DHPublicKey srvKey = (DHPublicKey) dhPair.getPublic(); DHPublicKey clientKey = - new GnuDHPublicKey(null, serverKey.getParams().getP(), - serverKey.getParams().getG(), + new GnuDHPublicKey(null, srvKey.getParams().getP(), + srvKey.getParams().getG(), params.params().publicValue()); SecretKey psk = null; try @@ -573,6 +571,12 @@ class ServerHandshake extends AbstractHandshake engine.session().privateData.masterSecret = new byte[0]; } break; + case DH_DSS: + case DH_RSA: + // Message contains no data in this case (RFC2246, 7.4.7) + break; + default: + throw new SSLException("Unsupported algorithm: " + alg); } // XXX SRP @@ -690,6 +694,9 @@ class ServerHandshake extends AbstractHandshake } } break; + + default: + throw new IllegalStateException("Invalid state: " + state); } handshakeOffset += handshake.length() + 4; @@ -724,8 +731,7 @@ class ServerHandshake extends AbstractHandshake { if (state.isWriteState() || outBuffer.hasRemaining()) return HandshakeStatus.NEED_WRAP; - else - return HandshakeStatus.NEED_UNWRAP; + return HandshakeStatus.NEED_UNWRAP; } // XXX what we need to do here is generate a "stream" of handshake @@ -1143,6 +1149,8 @@ output_loop: state = DONE; } break; + default: + throw new IllegalStateException("Invalid state: " + state); } } if (!tasks.isEmpty()) @@ -1194,7 +1202,7 @@ output_loop: helloV2 = true; } - private ByteBuffer signParams(ByteBuffer serverParams) + ByteBuffer signParams(ByteBuffer serverParams) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException { SignatureAlgorithm alg = engine.session().suite.signatureAlgorithm(); @@ -1254,6 +1262,43 @@ output_loop: } } + // Accessors and mutators for delegated tasks. + + void setKeyAlias(final String ka) + { + keyAlias = ka; + } + + String getKeyAlias() + { + return keyAlias; + } + + void setLocalCert(final X509Certificate lc) + { + localCert = lc; + } + + X509Certificate getLocalCert() + { + return localCert; + } + + void setServerKey(final PrivateKey sk) + { + serverKey = sk; + } + + PrivateKey getServerKey() + { + return serverKey; + } + + void setDHPair(KeyPair dh) + { + dhPair = dh; + } + // Delegated tasks. class CertLoader extends DelegatedTask @@ -1262,21 +1307,24 @@ output_loop: { } + @Override public void implRun() throws SSLException { KeyExchangeAlgorithm kexalg = engine.session().suite.keyExchangeAlgorithm(); X509ExtendedKeyManager km = engine.contextImpl.keyManager; Principal[] issuers = null; // XXX use TrustedAuthorities extension. - keyAlias = km.chooseEngineServerAlias(kexalg.name(), issuers, engine); - if (keyAlias == null) + String kAlias = km.chooseEngineServerAlias(kexalg.name(), issuers, engine); + setKeyAlias(kAlias); + if (kAlias == null) throw new SSLException("no certificates available"); - X509Certificate[] chain = km.getCertificateChain(keyAlias); + X509Certificate[] chain = km.getCertificateChain(kAlias); engine.session().setLocalCertificates(chain); - localCert = chain[0]; - serverKey = km.getPrivateKey(keyAlias); + X509Certificate lCert = chain[0]; + setLocalCert(lCert); + setServerKey(km.getPrivateKey(kAlias)); if (kexalg == DH_DSS || kexalg == DH_RSA) - dhPair = new KeyPair(localCert.getPublicKey(), - km.getPrivateKey(keyAlias)); + setDHPair(new KeyPair(lCert.getPublicKey(), + km.getPrivateKey(keyAlias))); } } @@ -1288,6 +1336,15 @@ output_loop: ByteBuffer paramsBuffer; ByteBuffer sigBuffer; + /** + * Public constructor to avoid synthetic accessor. + */ + public GenDH() + { + super(); + } + + @Override protected void implRun() throws NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, SignatureException @@ -1295,8 +1352,9 @@ output_loop: KeyPairGenerator dhGen = KeyPairGenerator.getInstance("DH"); DHParameterSpec dhparams = DiffieHellman.getParams().getParams(); dhGen.initialize(dhparams, engine.session().random()); - dhPair = dhGen.generateKeyPair(); - DHPublicKey pub = (DHPublicKey) dhPair.getPublic(); + KeyPair pair = dhGen.generateKeyPair(); + setDHPair(pair); + DHPublicKey pub = (DHPublicKey) pair.getPublic(); // Generate the parameters message. ServerDHParams params = new ServerDHParams(pub.getParams().getP(), @@ -1313,7 +1371,7 @@ output_loop: if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "Diffie-Hellman public:{0} private:{1}", - dhPair.getPublic(), dhPair.getPrivate()); + pair.getPublic(), pair.getPrivate()); } } @@ -1326,13 +1384,14 @@ output_loop: this.encryptedPreMasterSecret = encryptedPreMasterSecret; } + @Override public void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, SSLException { Cipher rsa = Cipher.getInstance("RSA"); - rsa.init(Cipher.DECRYPT_MODE, serverKey); - rsa.init(Cipher.DECRYPT_MODE, localCert); + rsa.init(Cipher.DECRYPT_MODE, getServerKey()); + rsa.init(Cipher.DECRYPT_MODE, getLocalCert()); preMasterSecret = rsa.doFinal(encryptedPreMasterSecret); generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); @@ -1356,8 +1415,8 @@ output_loop: NoSuchAlgorithmException, NoSuchPaddingException, SSLException { Cipher rsa = Cipher.getInstance("RSA"); - rsa.init(Cipher.DECRYPT_MODE, serverKey); - rsa.init(Cipher.DECRYPT_MODE, localCert); + rsa.init(Cipher.DECRYPT_MODE, getServerKey()); + rsa.init(Cipher.DECRYPT_MODE, getLocalCert()); byte[] rsaSecret = rsa.doFinal(encryptedPreMasterSecret); byte[] psSecret = psKey.getEncoded(); preMasterSecret = new byte[rsaSecret.length + psSecret.length + 4]; |