Пример #1
0
        //private bool InternalProcessSafe(Galois16 factor, uint size, byte[] inputbuffer, byte[] outputbuffer)
        //{
        //    //Treat the buffers as arrays of 16-bit Galois values.
        //    //Awfully long to execute

        //    try
        //    {
        //        // Create Galois16 inputbuffer
        //        Galois16[] inputGalois16 = new Galois16[inputbuffer.Length / 2];

        //        // Create Galois16 outputbuffer
        //        Galois16[] outputGalois16 = new Galois16[inputGalois16.Length];

        //        // Fill Galois16 input buffer with inpuntbuffer values
        //        for (int i = 0; i < inputGalois16.Length; ++i)
        //        {
        //            inputGalois16[i] = (Galois16)(inputbuffer[2 * i + 1] << 8 | inputbuffer[2 * i]);
        //            outputGalois16[i] = (Galois16)(outputbuffer[2 * i + 1] << 8 | outputbuffer[2 * i]);
        //        }

        //        // Process the data
        //        for (uint i = 0; i < outputGalois16.Length; ++i)
        //        {
        //            outputGalois16[i] += inputGalois16[i] * factor.Value;
        //        }

        //        // Copy back data from Galois16 output buffer to outputbuffer (byte)
        //        for (int i = 0; i < outputGalois16.Length; ++i)
        //        {
        //            outputbuffer[2 * i + 1] = (byte)(outputGalois16[i].Value >> 8 & 0xFF);
        //            outputbuffer[2 * i] = (byte)(outputGalois16[i].Value & 0xFF);
        //        }

        //        return true;
        //    }
        //    catch (Exception ex)
        //    {
        //        Debug.WriteLine(ex);
        //        return false;
        //    }
        //}

        private bool InternalProcess(ushort factor, uint size, byte[] inputbuffer, byte[] outputbuffer, int startIndex, uint length)
        {
            // Rewrite : TPL ?
            // Rewrite : Dynamic load FastGaloisFieldsUnsafe

            //FastGaloisFieldsSafeProcessor safeProcessor = new FastGaloisFieldsSafeProcessor();
            //return safeProcessor.InternalProcess(factor, size, inputbuffer, outputbuffer);

            try
            {
                //FastGaloisFieldsUnsafeProcessor unsafeProcessor = new FastGaloisFieldsUnsafeProcessor();
                //return unsafeProcessor.InternalProcess(factor, size, inputbuffer, outputbuffer, startIndex, length);
                //return FastGaloisFieldsUnsafeProcessor.InternalProcess(factor, size, inputbuffer, outputbuffer, startIndex, length);
                return(processor.InternalProcess(factor, size, inputbuffer, outputbuffer, startIndex, length));
            }
            catch (SecurityException)
            {
                //return InternalProcessSafe(factor, size, inputbuffer, outputbuffer);
                return(false);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                return(false);
            }
        }