--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue May 14 20:16:21 2013 +0400
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java Tue May 14 18:08:18 2013 +0100
@@ -65,6 +65,7 @@
import sun.security.util.Debug;
import sun.security.util.DerValue;
+import sun.security.util.ECUtil;
import sun.security.ec.ECParameters;
@@ -1351,7 +1352,8 @@
token.p11.C_GetAttributeValue(session.id(), oHandle, attrs);
byte[] encodedParams = attrs[0].getByteArray();
try {
- ECParameterSpec params = ECParameters.decodeParameters(encodedParams);
+ ECParameterSpec params =
+ ECUtil.getECParameterSpec(null, encodedParams);
keyLength = params.getCurve().getField().getFieldSize();
} catch (IOException e) {
// we do not want to accept key with unsupported parameters
@@ -1726,7 +1728,8 @@
idAttrs[0] = new CK_ATTRIBUTE(CKA_ID, alias);
}
- byte[] encodedParams = ECParameters.encodeParameters(ecKey.getParams());
+ byte[] encodedParams =
+ ECUtil.encodeECParameterSpec(null, ecKey.getParams());
attrs = new CK_ATTRIBUTE[] {
ATTR_TOKEN_TRUE,
ATTR_CLASS_PKEY,
@@ -1901,7 +1904,7 @@
ECPublicKey ecPub = (ECPublicKey)publicKey;
ECPoint point = ecPub.getW();
ECParameterSpec params = ecPub.getParams();
- byte[] encodedPoint = ECParameters.encodePoint(point, params.getCurve());
+ byte[] encodedPoint = ECUtil.encodePoint(point, params.getCurve());
if (id) {
attrs[0] = new CK_ATTRIBUTE(CKA_ID, sha1(encodedPoint));
}