getHiveSecretFromKeychain method

Future<List<int>> getHiveSecretFromKeychain(
  1. String atsign
)

Function to get hive secret from keychain

Implementation

Future<List<int>> getHiveSecretFromKeychain(String atsign) async {
  assert(atsign.isNotEmpty);
  List<int> secretAsUint8List = [];
  try {
    var atsignItem = await readAtsign(name: atsign);
    var hiveSecretString = (await readAtsign(name: atsign))?.hiveSecret;
    if (hiveSecretString == null) {
      secretAsUint8List = _generatePersistenceSecret();
      hiveSecretString = String.fromCharCodes(secretAsUint8List);
      atsignItem = atsignItem?.copyWith(
        hiveSecret: hiveSecretString,
      );
      if (atsignItem != null) {
        storeAtSign(atSign: atsignItem);
      }
    } else {
      secretAsUint8List = Uint8List.fromList(hiveSecretString.codeUnits);
    }
  } on Exception catch (exception) {
    _logger.severe(
        'exception in getHiveSecretFromKeychain : ${exception.toString()}');
  }

  return secretAsUint8List;
}