예제 #1
0
 public static extern void IDataWriteToSelfEncryptorNative(
     IntPtr appPtr,
     ulong seHandle,
     IntPtr data,
     IntPtr size,
     IntPtr self,
     ResultCb callback);
예제 #2
0
 public static extern void MDataPermissionsInsertNative(
     IntPtr appPtr,
     ulong permissionsHandle,
     ulong userHandle,
     ulong permissionSetHandle,
     IntPtr self,
     ResultCb callback);
예제 #3
0
 public static extern void MDataPutNative(
     IntPtr appPtr,
     ulong infoHandle,
     ulong permissionsHandle,
     ulong entriesHandle,
     IntPtr self,
     ResultCb callback);
        public static Task InsertAsync(NativeHandle entryActionsH, List <byte> entKey, List <byte> entVal)
        {
            var tcs = new TaskCompletionSource <object>();

            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            var entKeyPtr = entKey.ToIntPtr();
            var entValPtr = entVal.ToIntPtr();

            AppBindings.MDataEntryActionsInsert(
                Session.AppPtr,
                entryActionsH,
                entKeyPtr,
                (IntPtr)entKey.Count,
                entValPtr,
                (IntPtr)entVal.Count,
                callback);

            Marshal.FreeHGlobal(entKeyPtr);
            Marshal.FreeHGlobal(entValPtr);

            return(tcs.Task);
        }
예제 #5
0
 public void MDataPermissionsInsert(
     IntPtr appPtr,
     ulong permissionsHandle,
     ulong userHandle,
     ulong permissionSetHandle,
     ResultCb callback)
 {
     MDataPermissionsInsertNative(appPtr, permissionsHandle, userHandle, permissionSetHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #6
0
 public static extern void MDataEntryActionsInsertNative(
     IntPtr appPtr,
     ulong actionsHandle,
     IntPtr keyPtr,
     IntPtr keyLen,
     IntPtr valuePtr,
     IntPtr valueLen,
     IntPtr self,
     ResultCb callback);
예제 #7
0
 private static extern void MDataEntriesInsertNative(
     IntPtr appPtr,
     ulong entriesHandle,
     IntPtr keyPtr,
     IntPtr keyLen,
     IntPtr valuePtr,
     IntPtr valueLen,
     IntPtr self,
     ResultCb callback);
예제 #8
0
 public void MDataEntryActionsInsert(
     IntPtr appPtr,
     ulong actionsHandle,
     IntPtr keyPtr,
     IntPtr keyLen,
     IntPtr valuePtr,
     IntPtr valueLen,
     ResultCb callback)
 {
     MDataEntryActionsInsertNative(appPtr, actionsHandle, keyPtr, keyLen, valuePtr, valueLen, callback.ToHandlePtr(), OnResultCb);
 }
예제 #9
0
        public static Task SelfEncryptorReaderFreeAsync(ulong sEReaderHandle)
        {
            var      tcs      = new TaskCompletionSource <object>();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.IDataSelfEncryptorReaderFree(Session.AppPtr, sEReaderHandle, callback);

            return(tcs.Task);
        }
예제 #10
0
        public static Task AllowAsync(NativeHandle permissionSetH, MDataAction allowAction)
        {
            var      tcs      = new TaskCompletionSource <object>();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.MDataPermissionSetAllow(Session.AppPtr, permissionSetH, allowAction, callback);

            return(tcs.Task);
        }
예제 #11
0
        public static Task FreeAsync(ulong cipherOptHandle)
        {
            var      tcs      = new TaskCompletionSource <object>();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.CipherOptFree(Session.AppPtr, cipherOptHandle, callback);

            return(tcs.Task);
        }
예제 #12
0
        public static Task PutAsync(NativeHandle mDataInfoH, NativeHandle permissionsH, NativeHandle entriesH)
        {
            var      tcs      = new TaskCompletionSource <object>();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.MDataPut(Session.AppPtr, mDataInfoH, permissionsH, entriesH, callback);

            return(tcs.Task);
        }
예제 #13
0
        public static Task FreeAsync(ulong entKeysH)
        {
            var      tcs      = new TaskCompletionSource <object>();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.MDataKeysFree(Session.AppPtr, entKeysH, callback);

            return(tcs.Task);
        }
예제 #14
0
        public static Task InsertAsync(NativeHandle permissionsH, NativeHandle forUserH, NativeHandle permissionSetH)
        {
            var tcs = new TaskCompletionSource <object>();

            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.MDataPermissionsInsert(Session.AppPtr, permissionsH, forUserH, permissionSetH, callback);

            return(tcs.Task);
        }
예제 #15
0
        public static Task <object> WriteToSelfEncryptorAsync(NativeHandle seHandle, List <byte> data)
        {
            var      tcs      = new TaskCompletionSource <object>();
            var      dataPtr  = data.ToIntPtr();
            ResultCb callback = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(null);
            };

            AppBindings.IDataWriteToSelfEncryptor(Session.AppPtr, seHandle, dataPtr, (IntPtr)data.Count, callback);
            Marshal.FreeHGlobal(dataPtr);

            return(tcs.Task);
        }
예제 #16
0
        public static Task <List <List <byte> > > ForEachAsync(NativeHandle entKeysH)
        {
            var tcs  = new TaskCompletionSource <List <List <byte> > >();
            var keys = new List <List <byte> >();
            MDataKeysForEachCb forEachCb = (_, bytePtr, len) => {
                var key = bytePtr.ToList <byte>(len);
                keys.Add(key);
            };

            ResultCb forEachResCb = (_, result) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    return;
                }

                tcs.SetResult(keys);
            };

            AppBindings.MDataKeysForEach(Session.AppPtr, entKeysH, forEachCb, forEachResCb);

            return(tcs.Task);
        }
예제 #17
0
 public void MDataInfoFree(IntPtr appPtr, ulong infoHandle, ResultCb callback)
 {
     MDataInfoFreeNative(appPtr, infoHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #18
0
 public static extern void MDataEntryActionsFreeNative(IntPtr appPtr, ulong actionsHandle, IntPtr self, ResultCb callback);
예제 #19
0
 public void MDataEntryActionsFree(IntPtr appPtr, ulong actionsHandle, ResultCb callback)
 {
     MDataEntryActionsFreeNative(appPtr, actionsHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #20
0
 public void CipherOptFree(IntPtr appPtr, ulong cipherOptHandle, ResultCb callback)
 {
     CipherOptFreeNative(appPtr, cipherOptHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #21
0
 public void IDataWriteToSelfEncryptor(IntPtr appPtr, ulong seHandle, IntPtr data, IntPtr size, ResultCb callback)
 {
     IDataWriteToSelfEncryptorNative(appPtr, seHandle, data, size, callback.ToHandlePtr(), OnResultCb);
 }
예제 #22
0
 public static extern void IDataSelfEncryptorWriterFreeNative(IntPtr appPtr, ulong sEWriterHandle, IntPtr self, ResultCb callback);
예제 #23
0
 public void IDataSelfEncryptorWriterFree(IntPtr appPtr, ulong sEWriterHandle, ResultCb callback)
 {
     IDataSelfEncryptorWriterFreeNative(appPtr, sEWriterHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #24
0
 public void AppSetAdditionalSearchPath(string path, ResultCb callback)
 {
     AppSetAdditionalSearchPathNative(path, callback.ToHandlePtr(), OnResultCb);
 }
예제 #25
0
 public void EncSecretKeyFree(IntPtr appPtr, ulong encryptSecKeyHandle, ResultCb callback)
 {
     EncSecretKeyFreeNative(appPtr, encryptSecKeyHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #26
0
 public static extern void CipherOptFreeNative(IntPtr appPtr, ulong cipherOptHandle, IntPtr self, ResultCb callback);
예제 #27
0
 public static extern void SignKeyFreeNative(IntPtr appPtr, ulong signKeyHandle, IntPtr self, ResultCb callback);
예제 #28
0
 public void MDataEntriesFree(IntPtr appPtr, ulong entriesHandle, ResultCb callback)
 {
     MDataEntriesFreeNative(appPtr, entriesHandle, callback.ToHandlePtr(), OnResultCb);
 }
예제 #29
0
 public static extern void EncSecretKeyFreeNative(IntPtr appPtr, ulong encryptSecKeyHandle, IntPtr self, ResultCb callback);
예제 #30
0
 public static extern void AppSetAdditionalSearchPathNative(string path, IntPtr self, ResultCb callback);