public static OpenSSLKey getInstance(ECPrivateKey ecPrivateKey) throws InvalidKeyException {
   try {
     OpenSSLECGroupContext group = OpenSSLECGroupContext.getInstance(ecPrivateKey.getParams());
     final BigInteger privKey = ecPrivateKey.getS();
     return new OpenSSLKey(
         NativeCrypto.EVP_PKEY_new_EC_KEY(group.getContext(), 0, privKey.toByteArray()));
   } catch (Exception e) {
     throw new InvalidKeyException(e);
   }
 }
 public static OpenSSLKey getInstance(ECPublicKey ecPublicKey) throws InvalidKeyException {
   try {
     OpenSSLECGroupContext group = OpenSSLECGroupContext.getInstance(ecPublicKey.getParams());
     OpenSSLECPointContext pubKey =
         OpenSSLECPointContext.getInstance(
             NativeCrypto.get_EC_GROUP_type(group.getNativeRef()), group, ecPublicKey.getW());
     return new OpenSSLKey(
         NativeCrypto.EVP_PKEY_new_EC_KEY(group.getNativeRef(), pubKey.getNativeRef(), null));
   } catch (Exception e) {
     throw new InvalidKeyException(e);
   }
 }
 @Override
 public ECParameterSpec getParams() {
   return group.getECParameterSpec();
 }