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