internal void SetInteger(CipherParameterName name, long value)
 {
     Interop.CheckNThrowException(
         Interop.CkmcTypes.ParamListSetInteger(
             Ptr, (int)name, value),
         "Failed to add parameter.");
 }
        internal long GetInteger(CipherParameterName name)
        {
            long value = 0;

            Interop.CheckNThrowException(
                Interop.CkmcTypes.ParamListGetInteger(
                    Ptr, (int)name, out value),
                "Failed to get parameter.");
            return(value);
        }
        internal void SetBuffer(CipherParameterName name, byte[] value)
        {
            var    rawBuff = new Interop.CkmcRawBuffer(new PinnedObject(value), value.Length);
            IntPtr ptr     = Marshal.AllocHGlobal(Marshal.SizeOf(rawBuff));

            try
            {
                Marshal.StructureToPtr <Interop.CkmcRawBuffer>(rawBuff, ptr, false);
                Interop.CheckNThrowException(
                    Interop.CkmcTypes.ParamListSetBuffer(
                        Ptr, (int)name, ptr),
                    "Failed to add parameter.");
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }
        internal byte[] GetBuffer(CipherParameterName name)
        {
            IntPtr ptr = IntPtr.Zero;

            try
            {
                Interop.CheckNThrowException(
                    Interop.CkmcTypes.ParamListGetBuffer(
                        Ptr, (int)name, out ptr),
                    "Failed to get parameter.");
                return(new SafeRawBufferHandle(ptr).Data);
            }
            finally
            {
                if (ptr != IntPtr.Zero)
                {
                    Interop.CkmcTypes.BufferFree(ptr);
                }
            }
        }
Esempio n. 5
0
 internal byte[] GetBuffer(CipherParameterName name)
 {
     return(this._handle.GetBuffer(name));
 }
Esempio n. 6
0
 internal long GetInteger(CipherParameterName name)
 {
     return(this._handle.GetInteger(name));
 }
Esempio n. 7
0
 internal void Add(CipherParameterName name, byte[] value)
 {
     this._handle.SetBuffer(name, value);
 }
Esempio n. 8
0
 internal void Add(CipherParameterName name, long value)
 {
     this._handle.SetInteger(name, value);
 }