private static SafeSecKeyRefHandle ImportKey(ECParameters parameters)
        {
            int fieldSize = parameters.Q !.X !.Length;

            Debug.Assert(parameters.Q.Y != null && parameters.Q.Y.Length == fieldSize);
            Debug.Assert(parameters.Q.X != null && parameters.Q.X.Length == fieldSize);

            int keySize = 1 + fieldSize * (parameters.D != null ? 3 : 2);

            byte[]      dataKeyPool = CryptoPool.Rent(keySize);
            Span <byte> dataKey     = dataKeyPool.AsSpan(0, keySize);

            try
            {
                AsymmetricAlgorithmHelpers.EncodeToUncompressedAnsiX963Key(
                    parameters.Q.X,
                    parameters.Q.Y,
                    parameters.D,
                    dataKey);

                return(Interop.AppleCrypto.CreateDataKey(
                           dataKey,
                           Interop.AppleCrypto.PAL_KeyAlgorithm.EC,
                           isPublic: parameters.D == null));
            }
            finally
            {
                CryptoPool.Return(dataKeyPool, keySize);
            }
        }