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); }
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); }
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)); }
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"); } } }
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); }
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 }); }
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); }
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()); // }); //}); }
/// <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)); }
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)); }