예제 #1
0
        public async Task Legacy_Key(string key, string data)
        {
            var ks            = new AndroidKeyStore(Platform.AppContext, SecureStorage.Alias, SecureStorage.AlwaysUseAsymmetricKeyStorage);
            var encryptedData = ks.Encrypt(data);

            var encStr = System.Convert.ToBase64String(encryptedData);

            Preferences.Set(SecureStorage.Md5Hash(key), encStr, SecureStorage.Alias);

            // Ensure we read back out the right key
            var c = await SecureStorage.GetAsync(key);

            Assert.Equal(data, c);
        }
        /// <summary>
        /// Sets value in the AndroidKeystore
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public bool SetValue(string key, string value)
        {
            try
            {
                var ks            = new AndroidKeyStore(AppContext, SecurePreferenceName);
                var encryptedData = ks.Encrypt(value);

                using (var prefs = AppContext.GetSharedPreferences(SecurePreferenceName, FileCreationMode.Private))
                    using (var prefsEditor = prefs.Edit())
                    {
                        var encStr = Convert.ToBase64String(encryptedData);
                        prefsEditor.PutString(GetMD5Hash(key), encStr);
                        prefsEditor.Commit();

                        return(true);
                    }
            }
            catch (Exception)
            {
                return(false);
            }
        }