Mercury-IM/domain/src/main/java/org/mercury_im/messenger/core/data/repository/IkeyKeyRepository.java

61 lines
2.4 KiB
Java
Raw Normal View History

2020-10-11 11:44:47 +02:00
package org.mercury_im.messenger.core.data.repository;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.jivesoftware.smackx.ox.OpenPgpSecretKeyBackupPassphrase;
import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore;
2020-12-17 14:15:26 +01:00
import org.jxmpp.jid.EntityBareJid;
2020-10-24 19:25:28 +02:00
import org.mercury_im.messenger.core.util.Optional;
2020-10-11 11:44:47 +02:00
import org.mercury_im.messenger.entity.Account;
2020-12-17 14:15:26 +01:00
import org.pgpainless.key.OpenPgpV4Fingerprint;
2020-10-11 11:44:47 +02:00
import java.util.UUID;
import io.reactivex.Completable;
2020-10-24 19:25:28 +02:00
import io.reactivex.Observable;
2020-10-11 11:44:47 +02:00
import io.reactivex.Single;
public interface IkeyKeyRepository {
2020-10-24 19:25:28 +02:00
default Observable<Optional<PGPSecretKeyRing>> loadSecretKey(Account account) {
2020-10-11 11:44:47 +02:00
return loadSecretKey(account.getId());
}
2020-10-24 19:25:28 +02:00
Observable<Optional<PGPSecretKeyRing>> loadSecretKey(UUID accountId);
2020-10-11 11:44:47 +02:00
default Completable storeSecretKey(Account account, PGPSecretKeyRing secretKey) {
return storeSecretKey(account.getId(), secretKey);
}
Completable storeSecretKey(UUID accountId, PGPSecretKeyRing secretKey);
default Single<Integer> deleteSecretKey(Account account) {
return deleteSecretKey(account.getId());
}
Single<Integer> deleteSecretKey(UUID accountId);
2020-10-24 19:25:28 +02:00
default Single<Optional<OpenPgpSecretKeyBackupPassphrase>> loadBackupPassphrase(Account account) {
2020-10-11 11:44:47 +02:00
return loadBackupPassphrase(account.getId());
}
2020-10-24 19:25:28 +02:00
Single<Optional<OpenPgpSecretKeyBackupPassphrase>> loadBackupPassphrase(UUID accountID);
2020-10-11 11:44:47 +02:00
default Completable storeBackupPassphrase(Account account, OpenPgpSecretKeyBackupPassphrase passphrase) {
return storeBackupPassphrase(account.getId(), passphrase);
}
Completable storeBackupPassphrase(UUID accountID, OpenPgpSecretKeyBackupPassphrase passphrase);
2020-12-17 14:15:26 +01:00
default Observable<Optional<OpenPgpTrustStore.Trust>> loadSuperordinateTrust(Account account, EntityBareJid jid, OpenPgpV4Fingerprint fingerprint) {
2020-12-17 14:15:26 +01:00
return loadSuperordinateTrust(account.getId(), jid, fingerprint);
}
Observable<Optional<OpenPgpTrustStore.Trust>> loadSuperordinateTrust(UUID accountId, EntityBareJid jid, OpenPgpV4Fingerprint fingerprint);
2020-12-17 14:15:26 +01:00
default Completable storeSuperordinateTrust(Account account, EntityBareJid jid, OpenPgpV4Fingerprint fingerprint, OpenPgpTrustStore.Trust trust) {
2020-12-17 14:15:26 +01:00
return storeSuperordinateTrust(account.getId(), jid, fingerprint, trust);
}
Completable storeSuperordinateTrust(UUID accountId, EntityBareJid jid, OpenPgpV4Fingerprint fingerprint, OpenPgpTrustStore.Trust trust);
2020-10-11 11:44:47 +02:00
}