package org.mercury_im.messenger.core.data.repository; import org.bouncycastle.openpgp.PGPPublicKeyRingCollection; import org.bouncycastle.openpgp.PGPSecretKeyRingCollection; import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore; import org.jxmpp.jid.EntityBareJid; import org.pgpainless.key.OpenPgpV4Fingerprint; import java.util.Date; import java.util.Map; import java.util.UUID; import io.reactivex.Completable; import io.reactivex.Single; public interface OpenPgpRepository { Completable storePublicKeysOf(UUID accountId, EntityBareJid owner, PGPPublicKeyRingCollection keys); Single loadPublicKeysOf(UUID accountId, EntityBareJid owner); Single deletePublicKeysOf(UUID accountId, EntityBareJid owner); Completable storeSecretKeysOf(UUID accountId, EntityBareJid owner, PGPSecretKeyRingCollection keys); Single loadSecretKeysOf(UUID accountId, EntityBareJid owner); Single deleteSecretKeysOf(UUID accountId, EntityBareJid owner); Completable storePublicKeyFetchDates(UUID accountId, EntityBareJid owner, Map dates); Single> loadPublicKeyFetchDates(UUID accountId, EntityBareJid owner); Completable storeAnnouncedFingerprints(UUID accountId, EntityBareJid owner, Map metadata); Single> loadAnnouncedFingerprints(UUID accountId, EntityBareJid contact); Single loadTrust(UUID accountId, EntityBareJid owner, OpenPgpV4Fingerprint fingerprint); Completable storeTrust(UUID accountId, EntityBareJid owner, OpenPgpV4Fingerprint fingerprint, OpenPgpTrustStore.Trust trust); }