]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/protocol/SignalProtocolStore.java
1872e356ce73e2497f67aeb69c4d8219d9b5df96
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / protocol / SignalProtocolStore.java
1 package org.asamk.signal.manager.storage.protocol;
2
3 import org.whispersystems.libsignal.IdentityKey;
4 import org.whispersystems.libsignal.IdentityKeyPair;
5 import org.whispersystems.libsignal.InvalidKeyIdException;
6 import org.whispersystems.libsignal.SignalProtocolAddress;
7 import org.whispersystems.libsignal.state.IdentityKeyStore;
8 import org.whispersystems.libsignal.state.PreKeyRecord;
9 import org.whispersystems.libsignal.state.PreKeyStore;
10 import org.whispersystems.libsignal.state.SessionRecord;
11 import org.whispersystems.libsignal.state.SignedPreKeyRecord;
12 import org.whispersystems.libsignal.state.SignedPreKeyStore;
13 import org.whispersystems.signalservice.api.SignalServiceProtocolStore;
14 import org.whispersystems.signalservice.api.SignalServiceSessionStore;
15
16 import java.util.List;
17
18 public class SignalProtocolStore implements SignalServiceProtocolStore {
19
20 private final PreKeyStore preKeyStore;
21 private final SignedPreKeyStore signedPreKeyStore;
22 private final SignalServiceSessionStore sessionStore;
23 private final IdentityKeyStore identityKeyStore;
24
25 public SignalProtocolStore(
26 final PreKeyStore preKeyStore,
27 final SignedPreKeyStore signedPreKeyStore,
28 final SignalServiceSessionStore sessionStore,
29 final IdentityKeyStore identityKeyStore
30 ) {
31 this.preKeyStore = preKeyStore;
32 this.signedPreKeyStore = signedPreKeyStore;
33 this.sessionStore = sessionStore;
34 this.identityKeyStore = identityKeyStore;
35 }
36
37 @Override
38 public IdentityKeyPair getIdentityKeyPair() {
39 return identityKeyStore.getIdentityKeyPair();
40 }
41
42 @Override
43 public int getLocalRegistrationId() {
44 return identityKeyStore.getLocalRegistrationId();
45 }
46
47 @Override
48 public boolean saveIdentity(SignalProtocolAddress address, IdentityKey identityKey) {
49 return identityKeyStore.saveIdentity(address, identityKey);
50 }
51
52 @Override
53 public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction) {
54 return identityKeyStore.isTrustedIdentity(address, identityKey, direction);
55 }
56
57 @Override
58 public IdentityKey getIdentity(SignalProtocolAddress address) {
59 return identityKeyStore.getIdentity(address);
60 }
61
62 @Override
63 public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException {
64 return preKeyStore.loadPreKey(preKeyId);
65 }
66
67 @Override
68 public void storePreKey(int preKeyId, PreKeyRecord record) {
69 preKeyStore.storePreKey(preKeyId, record);
70 }
71
72 @Override
73 public boolean containsPreKey(int preKeyId) {
74 return preKeyStore.containsPreKey(preKeyId);
75 }
76
77 @Override
78 public void removePreKey(int preKeyId) {
79 preKeyStore.removePreKey(preKeyId);
80 }
81
82 @Override
83 public SessionRecord loadSession(SignalProtocolAddress address) {
84 return sessionStore.loadSession(address);
85 }
86
87 @Override
88 public List<Integer> getSubDeviceSessions(String name) {
89 return sessionStore.getSubDeviceSessions(name);
90 }
91
92 @Override
93 public void storeSession(SignalProtocolAddress address, SessionRecord record) {
94 sessionStore.storeSession(address, record);
95 }
96
97 @Override
98 public boolean containsSession(SignalProtocolAddress address) {
99 return sessionStore.containsSession(address);
100 }
101
102 @Override
103 public void deleteSession(SignalProtocolAddress address) {
104 sessionStore.deleteSession(address);
105 }
106
107 @Override
108 public void deleteAllSessions(String name) {
109 sessionStore.deleteAllSessions(name);
110 }
111
112 @Override
113 public void archiveSession(final SignalProtocolAddress address) {
114 sessionStore.archiveSession(address);
115 }
116
117 @Override
118 public SignedPreKeyRecord loadSignedPreKey(int signedPreKeyId) throws InvalidKeyIdException {
119 return signedPreKeyStore.loadSignedPreKey(signedPreKeyId);
120 }
121
122 @Override
123 public List<SignedPreKeyRecord> loadSignedPreKeys() {
124 return signedPreKeyStore.loadSignedPreKeys();
125 }
126
127 @Override
128 public void storeSignedPreKey(int signedPreKeyId, SignedPreKeyRecord record) {
129 signedPreKeyStore.storeSignedPreKey(signedPreKeyId, record);
130 }
131
132 @Override
133 public boolean containsSignedPreKey(int signedPreKeyId) {
134 return signedPreKeyStore.containsSignedPreKey(signedPreKeyId);
135 }
136
137 @Override
138 public void removeSignedPreKey(int signedPreKeyId) {
139 signedPreKeyStore.removeSignedPreKey(signedPreKeyId);
140 }
141 }