/// <summary> /// Will get the key from the Android keystore, creating it if necessary. /// </summary> /// <returns></returns> IKey GetKey() { if (!_keystore.IsKeyEntry(KEY_NAME)) { CreateKey(); } IKey secretKey = _keystore.GetKey(KEY_NAME, null); return(secretKey); }
public string GetKey() { IKey secretKey; if (!_keystore.IsKeyEntry(KEY_NAME)) { GenKey(); } secretKey = _keystore.GetKey(KEY_NAME, null); return(secretKey.ToString()); }
/// <summary> /// Will get the key from the Android keystore, creating it if necessary. /// </summary> /// <returns></returns> IKey GetKey() { if (!_keystore.IsKeyEntry(_keyName)) { CreateKey(); } IKey secretKey = _keystore.GetKey(_keyName, null); return(secretKey); }
private BiometricPrompt.CryptoObject BuildSymmetricCryptoObject(string keyName, string cipherName, CipherMode mode, byte[] iv = null) { if (this.Log().IsEnabled(LogLevel.Debug)) { this.Log().Debug($"Building a symmetric crypto object (key name: '{keyName}', mode: '{mode}')."); } var cipher = Cipher.GetInstance(cipherName); if (_keyStore.IsKeyEntry(keyName)) { if (mode == CipherMode.EncryptMode) { _keyStore.DeleteEntry(keyName); } else if (mode == CipherMode.DecryptMode) { try { cipher.Init(mode, _keyStore.GetKey(keyName, null), new IvParameterSpec(iv)); return(new BiometricPrompt.CryptoObject(cipher)); } catch (KeyPermanentlyInvalidatedException) { _keyStore.DeleteEntry(keyName); throw; } } } else if (mode == CipherMode.DecryptMode) { throw new ArgumentException("Key not found."); } GenerateSymmetricKey(keyName); cipher.Init(mode, _keyStore.GetKey(keyName, null)); if (this.Log().IsEnabled(LogLevel.Information)) { this.Log().Info($"Return the symmetric crypto object (key name: '{keyName}', mode: '{mode}')."); } return(new BiometricPrompt.CryptoObject(cipher)); }
public void RefreshItems() { _listItems.Clear(); foreach (String alias in KeyStore.Aliases) { KeyStoreEntryType entryType; if (KeyStore.IsCertificateEntry(alias)) { entryType = KeyStoreEntryType.TrustCertEntry; } else if (KeyStore.IsKeyEntry(alias) && KeyStore.GetCertificateChain(alias) != null && KeyStore.GetCertificateChain(alias).Length != 0) { entryType = KeyStoreEntryType.KeyPairEntry; } else { entryType = KeyStoreEntryType.KeyEntry; } _listItems.Add(new ListItemEntry(entryType, alias, KeyStore.GetCertificate(alias).Certificate)); } }