persistKeys method

Future<bool> persistKeys(
  1. String atSign
)

Returns true on persisting keys into keystore.

Implementation

Future<bool> persistKeys(String atSign) async {
  var pkamPrivateKey = await (getPkamPrivateKey(atSign)) ?? '';

  var pkamPublicKey = await (getPkamPublicKey(atSign)) ?? '';

  var encryptPrivateKey = await (getEncryptionPrivateKey(atSign)) ?? '';

  var encryptPublicKey = await getEncryptionPublicKey(atSign);

  var selfEncryptionKey = await (getSelfEncryptionKey(atSign)) ?? '';
  await atClient!
      .getLocalSecondary()!
      .putValue(AT_PKAM_PUBLIC_KEY, pkamPublicKey);
  await atClient!
      .getLocalSecondary()!
      .putValue(AT_PKAM_PRIVATE_KEY, pkamPrivateKey);
  await atClient!
      .getLocalSecondary()!
      .putValue(AT_ENCRYPTION_PRIVATE_KEY, encryptPrivateKey);
  var updateBuilder = UpdateVerbBuilder()
    ..atKey = 'publickey'
    ..isPublic = true
    ..sharedBy = atSign
    ..value = encryptPublicKey;
  await atClient!.getLocalSecondary()!.executeVerb(updateBuilder, sync: true);

  await atClient!
      .getLocalSecondary()!
      .putValue(AT_ENCRYPTION_SELF_KEY, selfEncryptionKey);
  var result = await _getKeysFromLocalSecondary(atSign);

  return result;
}