]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/identities/SignalIdentityKeyStore.java
5a1a676eeb31bd43cc142e4dbad7273fb4c47d44
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / identities / SignalIdentityKeyStore.java
1 package org.asamk.signal.manager.storage.identities;
2
3 import org.signal.libsignal.protocol.IdentityKey;
4 import org.signal.libsignal.protocol.IdentityKeyPair;
5 import org.signal.libsignal.protocol.SignalProtocolAddress;
6
7 import java.util.function.Supplier;
8
9 public class SignalIdentityKeyStore implements org.signal.libsignal.protocol.state.IdentityKeyStore {
10
11 private final Supplier<IdentityKeyPair> identityKeyPairSupplier;
12 private final int localRegistrationId;
13 private final IdentityKeyStore identityKeyStore;
14
15 public SignalIdentityKeyStore(
16 final Supplier<IdentityKeyPair> identityKeyPairSupplier,
17 final int localRegistrationId,
18 final IdentityKeyStore identityKeyStore
19 ) {
20 this.identityKeyPairSupplier = identityKeyPairSupplier;
21 this.localRegistrationId = localRegistrationId;
22 this.identityKeyStore = identityKeyStore;
23 }
24
25 @Override
26 public IdentityKeyPair getIdentityKeyPair() {
27 return identityKeyPairSupplier.get();
28 }
29
30 @Override
31 public int getLocalRegistrationId() {
32 return localRegistrationId;
33 }
34
35 @Override
36 public boolean saveIdentity(SignalProtocolAddress address, IdentityKey identityKey) {
37 return identityKeyStore.saveIdentity(address.getName(), identityKey);
38 }
39
40 @Override
41 public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction) {
42 return identityKeyStore.isTrustedIdentity(address.getName(), identityKey, direction);
43 }
44
45 @Override
46 public IdentityKey getIdentity(SignalProtocolAddress address) {
47 final var identityInfo = identityKeyStore.getIdentityInfo(address.getName());
48 return identityInfo == null ? null : identityInfo.getIdentityKey();
49 }
50 }