8035166: Remove dependency on EC classes from pkcs11 provider

Move the sun.security.ec.ECParameters and its related classes to sun.security.util package.

Reviewed-by: mullan, vinnie
diff --git a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java
index 61aa8a6..1293957 100644
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java
@@ -364,7 +364,7 @@
         }
 
         void getMethods() throws ClassNotFoundException, NoSuchMethodException {
-            Class<?> c  = Class.forName("sun.security.ec.ECParameters");
+            Class<?> c  = Class.forName("sun.security.util.ECParameters");
             Class<?>[] params = new Class<?>[] { ECPoint.class,
                                                  EllipticCurve.class };
             encodePoint = c.getMethod("encodePoint", params);
@@ -372,7 +372,7 @@
             getCurveName = c.getMethod("getCurveName", params);
             params = new Class<?>[] { byte[].class, EllipticCurve.class };
             decodePoint = c.getMethod("decodePoint", params);
-            c  = Class.forName("sun.security.ec.NamedCurve");
+            c  = Class.forName("sun.security.util.NamedCurve");
             params = new Class<?>[] { String.class };
             getECParameterSpec = c.getMethod("getECParameterSpec", params);
         }
@@ -477,7 +477,7 @@
                 throw new MarshalException(ite);
             }
 /*
-                ecPoint = sun.security.ec.ECParameters.decodePoint(
+                ecPoint = sun.security.util.ECParameters.decodePoint(
                     Base64.decode(curElem), ecParams.getCurve());
 */
             ECPublicKeySpec spec = new ECPublicKeySpec(ecPoint, ecParams);
diff --git a/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java b/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
index b70d7f4..2df53fb 100644
--- a/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
+++ b/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
@@ -32,11 +32,10 @@
 import java.security.spec.ECParameterSpec;
 import java.security.spec.ECPoint;
 
-import sun.security.ec.NamedCurve;
-import sun.security.ec.ECParameters;
 import sun.security.ec.ECPrivateKeyImpl;
 import sun.security.ec.ECPublicKeyImpl;
 import sun.security.jca.JCAUtil;
+import sun.security.util.ECParameters;
 import sun.security.util.ECUtil;
 
 /**
diff --git a/jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java b/jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java
index b974c3c..ef3b876 100644
--- a/jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java
+++ b/jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java
@@ -32,7 +32,11 @@
 import java.security.interfaces.*;
 import java.security.spec.*;
 
-import sun.security.util.*;
+import sun.security.util.DerInputStream;
+import sun.security.util.DerOutputStream;
+import sun.security.util.DerValue;
+import sun.security.util.ECParameters;
+import sun.security.util.ECUtil;
 import sun.security.x509.AlgorithmId;
 import sun.security.pkcs.PKCS8Key;
 
diff --git a/jdk/src/share/classes/sun/security/ec/ECPublicKeyImpl.java b/jdk/src/share/classes/sun/security/ec/ECPublicKeyImpl.java
index 0e82e73..bc40302 100644
--- a/jdk/src/share/classes/sun/security/ec/ECPublicKeyImpl.java
+++ b/jdk/src/share/classes/sun/security/ec/ECPublicKeyImpl.java
@@ -31,7 +31,9 @@
 import java.security.interfaces.*;
 import java.security.spec.*;
 
-import sun.security.util.*;
+import sun.security.util.ECParameters;
+import sun.security.util.ECUtil;
+
 import sun.security.x509.*;
 
 /**
diff --git a/jdk/src/share/classes/sun/security/ec/SunECEntries.java b/jdk/src/share/classes/sun/security/ec/SunECEntries.java
index 4e29718..aa6ad6e 100644
--- a/jdk/src/share/classes/sun/security/ec/SunECEntries.java
+++ b/jdk/src/share/classes/sun/security/ec/SunECEntries.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,8 @@
 import java.util.Map;
 
 import java.util.regex.Pattern;
+import sun.security.util.CurveDB;
+import sun.security.util.NamedCurve;
 
 /**
  * Defines the entries of the SunEC provider.
@@ -55,7 +57,7 @@
         /*
          * Algorithm Parameter engine
          */
-        map.put("AlgorithmParameters.EC", "sun.security.ec.ECParameters");
+        map.put("AlgorithmParameters.EC", "sun.security.util.ECParameters");
         map.put("Alg.Alias.AlgorithmParameters.EllipticCurve", "EC");
         map.put("Alg.Alias.AlgorithmParameters.1.2.840.10045.2.1", "EC");
 
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
index 32002c2..436613c 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
@@ -67,8 +67,6 @@
 import sun.security.util.DerValue;
 import sun.security.util.ECUtil;
 
-import sun.security.ec.ECParameters;
-
 import sun.security.pkcs11.Secmod.*;
 import static sun.security.pkcs11.P11Util.*;
 
diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
index 630cff1..74e5d1e 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
@@ -593,7 +593,7 @@
 
         // AlgorithmParameters for EC.
         // Only needed until we have an EC implementation in the SUN provider.
-        d(AGP, "EC",            "sun.security.ec.ECParameters",
+        d(AGP, "EC",            "sun.security.util.ECParameters",
                                                 s("1.2.840.10045.2.1"),
                 m(CKM_EC_KEY_PAIR_GEN, CKM_ECDH1_DERIVE,
                     CKM_ECDSA, CKM_ECDSA_SHA1));
@@ -1032,7 +1032,7 @@
             } else if (type == KS) {
                 return token.getKeyStore();
             } else if (type == AGP) {
-                return new sun.security.ec.ECParameters();
+                return new sun.security.util.ECParameters();
             } else {
                 throw new NoSuchAlgorithmException("Unknown type: " + type);
             }
diff --git a/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java b/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
index 8933fab..6278769 100644
--- a/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
+++ b/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java
@@ -176,7 +176,7 @@
     private final static int ARBITRARY_PRIME = 0xff01;
     private final static int ARBITRARY_CHAR2 = 0xff02;
 
-    // See sun.security.ec.NamedCurve for the OIDs
+    // See sun.security.util.NamedCurve for the OIDs
     private final static String[] NAMED_CURVE_OID_TABLE = new String[] {
         null,                   //  (0) unused
         "1.3.132.0.1",          //  (1) sect163k1, NIST K-163
diff --git a/jdk/src/share/classes/sun/security/ec/CurveDB.java b/jdk/src/share/classes/sun/security/util/CurveDB.java
similarity index 99%
rename from jdk/src/share/classes/sun/security/ec/CurveDB.java
rename to jdk/src/share/classes/sun/security/util/CurveDB.java
index 0e2db68..d10d644 100644
--- a/jdk/src/share/classes/sun/security/ec/CurveDB.java
+++ b/jdk/src/share/classes/sun/security/util/CurveDB.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
  * questions.
  */
 
-package sun.security.ec;
+package sun.security.util;
 
 import java.math.BigInteger;
 
@@ -54,10 +54,10 @@
 
     private static Collection<? extends NamedCurve> specCollection;
 
-    static final String SPLIT_PATTERN = ",|\\[|\\]";
+    public static final String SPLIT_PATTERN = ",|\\[|\\]";
 
     // Used by SunECEntries
-    static Collection<? extends NamedCurve>getSupportedCurves() {
+    public static Collection<? extends NamedCurve>getSupportedCurves() {
         return specCollection;
     }
 
diff --git a/jdk/src/share/classes/sun/security/ec/ECParameters.java b/jdk/src/share/classes/sun/security/util/ECParameters.java
similarity index 97%
rename from jdk/src/share/classes/sun/security/ec/ECParameters.java
rename to jdk/src/share/classes/sun/security/util/ECParameters.java
index 8292c95..317fad3 100644
--- a/jdk/src/share/classes/sun/security/ec/ECParameters.java
+++ b/jdk/src/share/classes/sun/security/util/ECParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,15 +23,13 @@
  * questions.
  */
 
-package sun.security.ec;
+package sun.security.util;
 
 import java.io.IOException;
 
 import java.security.*;
 import java.security.spec.*;
 
-import sun.security.util.*;
-
 /**
  * This class implements encoding and decoding of Elliptic Curve parameters
  * as specified in RFC 3279.
@@ -77,7 +75,7 @@
 public final class ECParameters extends AlgorithmParametersSpi {
 
     // used by ECPublicKeyImpl and ECPrivateKeyImpl
-    static AlgorithmParameters getAlgorithmParameters(ECParameterSpec spec)
+    public static AlgorithmParameters getAlgorithmParameters(ECParameterSpec spec)
             throws InvalidKeyException {
         try {
             AlgorithmParameters params =
diff --git a/jdk/src/share/classes/sun/security/ec/NamedCurve.java b/jdk/src/share/classes/sun/security/util/NamedCurve.java
similarity index 87%
rename from jdk/src/share/classes/sun/security/ec/NamedCurve.java
rename to jdk/src/share/classes/sun/security/util/NamedCurve.java
index 97597c8..0a677aa 100644
--- a/jdk/src/share/classes/sun/security/ec/NamedCurve.java
+++ b/jdk/src/share/classes/sun/security/util/NamedCurve.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,16 +23,13 @@
  * questions.
  */
 
-package sun.security.ec;
+package sun.security.util;
 
 import java.io.IOException;
 import java.math.BigInteger;
 
 import java.security.spec.*;
 
-import sun.security.util.DerOutputStream;
-import sun.security.util.ObjectIdentifier;
-
 
 /**
  * Contains Elliptic Curve parameters.
@@ -40,7 +37,7 @@
  * @since   1.6
  * @author  Andreas Sterbenz
  */
-class NamedCurve extends ECParameterSpec {
+public final class NamedCurve extends ECParameterSpec {
 
     // friendly name for toString() output
     private final String name;
@@ -68,15 +65,15 @@
         encoded = out.toByteArray();
     }
 
-    String getName() {
+    public String getName() {
         return name;
     }
 
-    byte[] getEncoded() {
+    public byte[] getEncoded() {
         return encoded.clone();
     }
 
-    String getObjectId() {
+    public String getObjectId() {
         return oid;
     }