private async void EnrollUser(String user, NSData zoomFacemap, String sessionId)
        {
            String  zoomFacemapStr = zoomFacemap.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
            JObject parameters     = new JObject(
                new JProperty("enrollmentIdentifier", user),
                new JProperty("facemap", zoomFacemapStr),
                new JProperty("sessionId", sessionId));
            var content = new StringContent(parameters.ToString(), Encoding.UTF8, "application/json");

            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("X-App-Token", appToken);
            String url = baseURL + "/enrollment";
            HttpResponseMessage response = await client.PostAsync(url, content);

            var result = await response.Content.ReadAsStringAsync();

            dynamic parsedResponse = JObject.Parse(result);

            bool enrolled = parsedResponse.meta.ok;

            if (enrolled)
            {
                ShowZoomAlert("Enrollment Status", "User Enrolled!");
            }
            else
            {
                ShowZoomAlert("Enrollment Status", "Enrollment Failed\nHybrid Response:\n" + result);
            }
        }
        async Task <NSData> RequestContentKeyFromKeySecurityModule(NSData spcData, String assetID)
        {
            NSData ckcData = null;

            if (spcData == null)
            {
                return(null);
            }

            try
            {
                var str        = spcData.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
                var postString = $"spc={str}&assetId={assetID}";

                var postData = NSData.FromString(postString);

                var content = new ByteArrayContent(postData.ToArray());

                // TODO: You can replace this hard-coded endpoint with your own if you have one set up
                var response = await client.PostAsync("https://willzhanmswest.keydelivery.westus.media.azure.net/FairPlay/?kid=bf05ec87-4fff-4488-aa45-828fe8d7f840", content);

                var responseString = (await response.Content.ReadAsStringAsync()).Replace("<ckc>", "").Replace("</ckc>", "");

                ckcData = new NSData(responseString, NSDataBase64DecodingOptions.None);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            return(ckcData);
        }
Exemple #3
0
        private void DecreaseImageQuality(object sender, UIImagePickerMediaPickedEventArgs args)
        {
            UIImage image = args.EditedImage ?? args.OriginalImage;

            if (image != null)
            {
                if (image.Size.Height > 1600)
                {
                    image = MaxResizeImage(image, (int)image.Size.Height / 2, (int)image.Size.Width / 2);
                }

                // Convert UIImage to .NET Stream object
                NSData data = image.AsJPEG(0.75f);
                //Stream stream = data.AsStream();
                var base64string = data.GetBase64EncodedString(NSDataBase64EncodingOptions.SixtyFourCharacterLineLength);

                // Set the Stream as the completion of the Task
                _taskCompletionSource.SetResult(base64string);
            }
            else
            {
                _taskCompletionSource.SetResult(null);
            }

            imagePicker.DismissViewController(true, null);
        }
Exemple #4
0
        public static void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            var tokenStringBase64 = deviceToken.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
            var s = BitConverter.ToString(deviceToken.ToArray()).Replace("-", "");

            Console.WriteLine(s);
        }
        private string EncryptKey(string key)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                throw new ArgumentNullException(nameof(key));
            }

            NSData cipherKey = _provider.EncryptDeterministically(DataFromString(key), DataFromString(_name));

            return(cipherKey.GetBase64EncodedString(NSDataBase64EncodingOptions.None));
        }
Exemple #6
0
        private void TestDeterTink()
        {
            NSError error;

            RegisterAead();

            var handleStore = new TINKKeysetHandle("name", out error);


            // aead deter
            var tpl    = new TINKDeterministicAeadKeyTemplate(TINKDeterministicAeadKeyTemplates.TINKAes256Siv, out error);
            var handle = new TINKKeysetHandle(tpl, out error);
            ITINKDeterministicAead aeadDeter = TINKDeterministicAeadFactory.PrimitiveWithKeysetHandle(handle, out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error.LocalizedFailureReason);
                return;
            }

            // encrypt
            string[] items = new string[]
            {
                "key_long_1",
                "key_email",
            };
            for (int i = 0; i < 2; i++)
            {
                foreach (var item in items)
                {
                    // encrypt
                    string associatedData = "name_default";
                    NSData cipher         = aeadDeter.EncryptDeterministically(NSData.FromString(item, NSStringEncoding.UTF8), NSData.FromString(associatedData, NSStringEncoding.UTF8), out error);
                    if (error != null)
                    {
                        Console.WriteLine(error.LocalizedFailureReason);
                        return;
                    }

                    Console.WriteLine(cipher.GetBase64EncodedString(NSDataBase64EncodingOptions.None));

                    // decrypt
                    NSData unencryped = aeadDeter.DecryptDeterministically(cipher, NSData.FromString(associatedData, NSStringEncoding.UTF8), out error);
                    if (error != null)
                    {
                        Console.WriteLine(error.LocalizedFailureReason);
                        return;
                    }
                    Console.WriteLine(unencryped.ToString(NSStringEncoding.UTF8));
                }
            }
        }
        private async void AuthenticateUser(String user, NSData zoomFacemap, String sessionId)
        {
            JObject paramterField = new JObject();

            paramterField.Add("enrollmentIdentifier", user);
            String  zoomFacemapStr       = zoomFacemap.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
            JObject destinationMapsField = new JObject();

            destinationMapsField.Add("facemap", zoomFacemapStr);
            JObject[] destinationMapsFieldArr = new JObject[] { destinationMapsField };

            JObject parameters = new JObject(
                new JProperty("source", paramterField),
                new JProperty("comparisons", destinationMapsFieldArr),
                new JProperty("performContinuousLearning", true),
                new JProperty("sessionId", sessionId));
            var content = new StringContent(parameters.ToString(), Encoding.UTF8, "application/json");

            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("X-App-Token", appToken);
            String url = baseURL + "/compare";

            HttpResponseMessage response = await client.PostAsync(url, content);

            var result = await response.Content.ReadAsStringAsync();

            dynamic parsedResponse = JObject.Parse(result);

            bool ok = parsedResponse.meta.ok;

            if (ok)
            {
                int authenticated = parsedResponse.data.results[0].authenticated;
                if (authenticated == 1)
                {
                    ShowZoomAlert("Authentication Status", "User Authenticated!");
                }
                else
                {
                    ShowZoomAlert("Authentication Status", "Authentication Failed");
                }
            }
            else
            {
                ShowZoomAlert("Authentication Status", "Authentication Failed\nHybrid Response:\n" + result);
            }
        }
        public void Base64_Short()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var data = NSData.FromArray(new byte [1] {
                42
            })) {
                string s1 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithCarriageReturn);
                Assert.That(s1, Is.EqualTo("Kg=="), "EndLineWithCarriageReturn");
                string s2 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithLineFeed);
                Assert.That(s2, Is.EqualTo("Kg=="), "EndLineWithLineFeed");
                string s3 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithCarriageReturn | NSDataBase64EncodingOptions.EndLineWithCarriageReturn);
                Assert.That(s3, Is.EqualTo("Kg=="), "EndLineWithCarriageReturn/EndLineWithLineFeed");
                // '~' will be ignored
                using (var base64a = new NSData("~" + s3, NSDataBase64DecodingOptions.IgnoreUnknownCharacters)) {
                    Assert.That(base64a.GetBase64EncodedString(NSDataBase64EncodingOptions.None), Is.EqualTo("Kg=="), "ctor(string)/None");
                    Assert.Throws <Exception> (() => new NSData(data, NSDataBase64DecodingOptions.None), "invalid data");
                }
            }
        }
        Task <bool> ValidateReceipt(IInAppBillingVerifyPurchase verifyPurchase, string productId, string transactionId)
        {
            if (verifyPurchase == null)
            {
                return(Task.FromResult(true));
            }

            // Get the receipt data for (server-side) validation.
            // See: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573
            NSData receiptUrl = null;

            if (NSBundle.MainBundle.AppStoreReceiptUrl != null)
            {
                receiptUrl = NSData.FromUrl(NSBundle.MainBundle.AppStoreReceiptUrl);
            }

            var receipt = receiptUrl?.GetBase64EncodedString(NSDataBase64EncodingOptions.None);

            return(verifyPurchase.VerifyPurchase(receipt, string.Empty, productId, transactionId));
        }
        public void Base64_Long()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            byte[] array = new byte [60];
            using (var data = NSData.FromArray(array)) {
                string s0 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithCarriageReturn);
                Assert.That(s0.Length, Is.EqualTo(80), "no line limit/break");
                string s1 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithCarriageReturn | NSDataBase64EncodingOptions.SixtyFourCharacterLineLength);
                Assert.That(s1.Length, Is.EqualTo(81), "break 64 + CR");
                string s2 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithLineFeed | NSDataBase64EncodingOptions.SeventySixCharacterLineLength);
                Assert.That(s2.Length, Is.EqualTo(81), "break 76 + LF");
                string s3 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.EndLineWithLineFeed | NSDataBase64EncodingOptions.EndLineWithCarriageReturn | NSDataBase64EncodingOptions.SixtyFourCharacterLineLength);
                Assert.That(s3.Length, Is.EqualTo(82), "break 76 + CR/LF");
                // '~' will be ignored
                using (var base64a = new NSData("~" + s3, NSDataBase64DecodingOptions.IgnoreUnknownCharacters)) {
                    Assert.That(base64a.GetBase64EncodedString(NSDataBase64EncodingOptions.None).Length, Is.EqualTo(80), "ctor(string)/None");
                    Assert.Throws <Exception> (() => new NSData(data, NSDataBase64DecodingOptions.None), "invalid data");
                }
            }
        }
Exemple #11
0
        private void OnImagePickerFinishedPickingMedia(object sender, UIImagePickerMediaPickedEventArgs args)
        {
            UIImage image = args.EditedImage ?? args.OriginalImage;

            if (image != null)
            {
                image = MaxResizeImage(image, LocalConstants.Profile_PictureSize, LocalConstants.Profile_PictureSize);

                // Convert UIImage to .NET Stream object
                NSData data = image.AsJPEG(0.6f);
                //Stream stream = data.AsStream();
                var base64string = data.GetBase64EncodedString(NSDataBase64EncodingOptions.SixtyFourCharacterLineLength);

                // Set the Stream as the completion of the Task
                _taskCompletionSource.SetResult(base64string);
            }
            else
            {
                _taskCompletionSource.SetResult(null);
            }

            imagePicker.DismissViewController(true, null);
        }
Exemple #12
0
        private IPickedMediaFromGallery HandlePickedMovie(UIImagePickerMediaPickedEventArgs args)
        {
            NSData data         = NSData.FromUrl(args.MediaUrl);
            string sourceBase64 = data.GetBase64EncodedString(NSDataBase64EncodingOptions.None);

            byte[]           bytes;
            System.IO.Stream stream = GetThumbnail(args.MediaUrl.AbsoluteString);
            stream.Position = 0;

            using (System.IO.BinaryReader reader = new System.IO.BinaryReader(stream)) {
                bytes = reader.ReadBytes((int)stream.Length);
            }

            string sourceThumbnailBase64 = Convert.ToBase64String(bytes);

            return(new PickedMediaFromGallery()
            {
                Completion = true,
                DataBase64 = sourceBase64,
                MimeType = ProfileMediaService.VIDEO_MEDIA_TYPE,
                DataThumbnailBase64 = sourceThumbnailBase64
            });
        }
Exemple #13
0
        public void SetPhoto(UIImage impath)
        {
            string _base64String;
            NSData imageData = impath.AsJPEG(compressionQuality: 0.1f);

            _base64String = imageData.GetBase64EncodedString(NSDataBase64EncodingOptions.None);

            var UserId = DataBase.MEMBER_DATA_GETIR()[0].id;
            GalleryDataModel fotografEkleDataModel = new GalleryDataModel()
            {
                imagePath        = _base64String,
                userId           = UserId,
                createdDate      = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssZ"),
                lastModifiedDate = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssZ")
            };

            WebService webService = new WebService();
            string     jsonString = JsonConvert.SerializeObject(fotografEkleDataModel);
            var        Donus      = webService.ServisIslem("images", jsonString);

            if (Donus != "Hata")
            {
                for (int i = 0; i < Noktalar.Length; i++)
                {
                    Noktalar[i].RemoveFromSuperview();
                }
                GetPhotos();
                CreateScrollViews();
                CustomLoading.Hide();
                GenelBase.GetUserImage(UserId);
            }
            else
            {
                CustomAlert.GetCustomAlert(this, "Fotoğraf Yüklenemedi!...");
                CustomLoading.Hide();
            }
        }
        /// <summary>
        /// Purchase a specific product or subscription
        /// </summary>
        /// <param name="productId">Sku or ID of product</param>
        /// <param name="itemType">Type of product being requested</param>
        /// <param name="payload">Developer specific payload</param>
        /// <param name="verifyPurchase">Interface to verify purchase</param>
        /// <returns></returns>
        public async Task <InAppBillingPurchase> PurchaseAsync(string productId, ItemType itemType, string payload, IInAppBillingVerifyPurchase verifyPurchase = null)
        {
            var p = await PurchaseAsync(productId);

            var reference = new DateTime(2001, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

            // Get the receipt data for (server-side) validation.
            // See: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573
            NSData r       = NSData.FromUrl(NSBundle.MainBundle.AppStoreReceiptUrl);
            string receipt = r.GetBase64EncodedString(NSDataBase64EncodingOptions.None);

            if (verifyPurchase == null || await verifyPurchase.VerifyPurchase(receipt, string.Empty))
            {
                return(new InAppBillingPurchase
                {
                    TransactionDateUtc = reference.AddSeconds(p.TransactionDate.SecondsSinceReferenceDate),
                    Id = p.TransactionIdentifier,
                    ProductId = p.Payment?.ProductIdentifier ?? string.Empty,
                    State = p.GetPurchaseState()
                });
            }

            return(null);
        }
Exemple #15
0
        public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            var finalString = deviceToken.GetBase64EncodedString(NSDataBase64EncodingOptions.None);

            NSUserDefaults.StandardUserDefaults.SetString(finalString, "PushDeviceToken");

            //Console.WriteLine(new NSData(finalString, NSDataBase64DecodingOptions.IgnoreUnknownCharacters));

            //Hub = new SBNotificationHub(ConnectionString, NotificationHubPath);

            //Hub.UnregisterAllAsync(deviceToken, (error) => {
            //    if (error != null)
            //    {
            //        Console.WriteLine("Error calling Unregister: {0}", error.ToString());
            //        return;
            //    }

            //    NSSet tags = null; // create tags if you want
            //    Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
            //        if (errorCallback != null)
            //            Console.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
            //    });
            //});
        }
Exemple #16
0
        /// <summary>
        /// プッシュ通知が登録される時に呼ばれる
        /// </summary>
        /// <param name="application">Application.</param>
        /// <param name="deviceToken">Device token.</param>
        public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            var authHelper = new AuthHelper(new AccountStoreWrapper());

            authHelper.SaveToken(Constant.TokenKey, deviceToken.GetBase64EncodedString(NSDataBase64EncodingOptions.None));
        }
Exemple #17
0
        private void TestTink()
        {
            RegisterAead();

            // gen key
            NSError error;
            var     tpl = new TINKAeadKeyTemplate(TINKAeadKeyTemplates.Aes256Gcm, out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }
            var handle = new TINKKeysetHandle(tpl, out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }

            // store
            var keysetName = "co.tnn.tink.demo_key";

            if (!handle.WriteToKeychainWithName(keysetName, true, out error))
            {
                Console.WriteLine("Error: " + error);
                return;
            }

            // load
            TINKKeysetHandle handleStore = new TINKKeysetHandle(keysetName, out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }

            // AEAD
            ITINKAead aead = TINKAeadFactory.PrimitiveWithKeysetHandle(handleStore, out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }

            // encrypt
            NSData cipher = aead.Encrypt(NSData.FromString("hello world", NSStringEncoding.UTF8), NSData.FromString("k_value", NSStringEncoding.UTF8), out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }

            Console.WriteLine(cipher.GetBase64EncodedString(NSDataBase64EncodingOptions.None));

            // decrypt
            var plain = aead.Decrypt(cipher, NSData.FromString("k_value", NSStringEncoding.UTF8), out error);

            if (error != null)
            {
                Console.WriteLine("Error: " + error);
                return;
            }
            Console.WriteLine(plain.ToString(NSStringEncoding.UTF8));
        }
 /// <summary>
 /// トークンを保存する
 /// </summary>
 /// <param name="token">Firebaseで発行されたトークン</param>
 public void SaveToken(NSData token)
 {
     this.authHelper.SaveToken(Constant.TokenKey, token.GetBase64EncodedString(NSDataBase64EncodingOptions.None));
 }