storePkamKeysToKeychain method
Function to save pkam keys for the atsign passed to keychain
Implementation
Future<bool> storePkamKeysToKeychain(String atsign,
{String? privateKey, String? publicKey}) async {
final internalAtClientData =
await readAtClientData(useSharedStorage: false);
final useSharedStorage =
internalAtClientData?.config?.useSharedStorage ?? false;
final atClientData =
await readAtClientData(useSharedStorage: useSharedStorage);
try {
final atsigns = atClientData?.keys ?? [];
final index = atsigns.indexWhere((element) => element.atSign == atsign);
if (index >= 0) {
atsigns[index] = atsigns[index].copyWith(
pkamPrivateKey: privateKey,
pkamPublicKey: publicKey,
);
} else {
atsigns.add(AtsignKey(atSign: atsign).copyWith(
pkamPrivateKey: privateKey,
pkamPublicKey: publicKey,
));
}
atClientData?.keys = atsigns;
if (atClientData != null) {
await _saveAtClientData(
data: atClientData, useSharedStorage: useSharedStorage);
return true;
} else {
return false;
}
} catch (e, s) {
print(e);
print(s);
return false;
}
}