Release 4.0.0-preview1-00258
[platform/core/csapi/tizenfx.git] / src / Tizen.Security.TEEC / Tizen.Security.TEEC / Libteec.cs
index f05cb74..8b39e79 100644 (file)
@@ -16,6 +16,7 @@
 
 using System;
 using System.Collections.Generic;
+using System.Runtime.InteropServices;
 using System.Threading;
 using System.Threading.Tasks;
 
@@ -137,7 +138,7 @@ namespace Tizen.Security.TEEC
         public void SetData(byte[] data, int dstOffs)
         {
             if ((shm.flags & (uint)SharedMemoryFlags.Output) == 0) throw new InvalidOperationException("No write access");
-            //TODO copy data into shared memory starting at given offset
+            Marshal.Copy(data, 0, shm.buffer + dstOffs, data.Length);
         }
         /// <summary>
         /// This function makes a copy and is designed for convenient operations on small buffers.
@@ -150,7 +151,7 @@ namespace Tizen.Security.TEEC
         public void GetData(byte[] data, int srcOffs)
         {
             if ((shm.flags & (uint)SharedMemoryFlags.Input) == 0) throw new InvalidOperationException("No read access");
-            //TODO copy data from shared memory starting at given offset
+            Marshal.Copy(shm.buffer + srcOffs, data, 0, data.Length);
         }
     };
 
@@ -310,11 +311,11 @@ namespace Tizen.Security.TEEC
 
         internal void Open(Guid destination, uint loginMethod, byte[] connectionData, Parameter[] paramlist)
         {
-            Interop.TEEC_UUID uuid = new Interop.TEEC_UUID();
+            Interop.TEEC_UUID uuid = Interop.TEEC_UUID.ToTeecUuid(destination);
             Interop.TEEC_Operation op = new Interop.TEEC_Operation();
             uint ro;
 
-            int ret = Interop.Libteec.OpenSession(ref context, ref session, uuid, loginMethod, connectionData, ref op, out ro);
+            int ret = Interop.Libteec.OpenSession(ref context, ref session, ref uuid, loginMethod, connectionData, ref op, out ro);
             //MAYBE map origin of return code to specyfic Exception
             Interop.CheckNThrowException(ret, string.Format("OpenSession('{0}')", destination));
         }
@@ -414,6 +415,8 @@ namespace Tizen.Security.TEEC
         public Context(string name)
         {
             context = new Interop.TEEC_Context();
+            if (name != null && name.Length == 0)
+                name = null;
             int ret = Interop.Libteec.InitializeContext(name, ref context);
             Interop.CheckNThrowException(ret, string.Format("InititalizeContext('{0}')", name));
         }