X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/5859e7b9f78b5d8963c56c66b75530ee3f094bee..27d9424f1e7f607ac2dfad5b2164d065ffb79ef7:/src/main/java/cli/JsonSignedPreKeyStore.java diff --git a/src/main/java/cli/JsonSignedPreKeyStore.java b/src/main/java/cli/JsonSignedPreKeyStore.java deleted file mode 100644 index 4dc0cad3..00000000 --- a/src/main/java/cli/JsonSignedPreKeyStore.java +++ /dev/null @@ -1,114 +0,0 @@ -package cli; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.*; -import org.whispersystems.libaxolotl.InvalidKeyIdException; -import org.whispersystems.libaxolotl.state.SignedPreKeyRecord; -import org.whispersystems.libaxolotl.state.SignedPreKeyStore; - -import java.io.IOException; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -class JsonSignedPreKeyStore implements SignedPreKeyStore { - - private final Map store = new HashMap<>(); - - public JsonSignedPreKeyStore() { - - } - - - public void addSignedPreKeys(Map preKeys) { - store.putAll(preKeys); - } - - @Override - public SignedPreKeyRecord loadSignedPreKey(int signedPreKeyId) throws InvalidKeyIdException { - try { - if (!store.containsKey(signedPreKeyId)) { - throw new InvalidKeyIdException("No such signedprekeyrecord! " + signedPreKeyId); - } - - return new SignedPreKeyRecord(store.get(signedPreKeyId)); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public List loadSignedPreKeys() { - try { - List results = new LinkedList<>(); - - for (byte[] serialized : store.values()) { - results.add(new SignedPreKeyRecord(serialized)); - } - - return results; - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public void storeSignedPreKey(int signedPreKeyId, SignedPreKeyRecord record) { - store.put(signedPreKeyId, record.serialize()); - } - - @Override - public boolean containsSignedPreKey(int signedPreKeyId) { - return store.containsKey(signedPreKeyId); - } - - @Override - public void removeSignedPreKey(int signedPreKeyId) { - store.remove(signedPreKeyId); - } - - public static class JsonSignedPreKeyStoreDeserializer extends JsonDeserializer { - - @Override - public JsonSignedPreKeyStore deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { - JsonNode node = jsonParser.getCodec().readTree(jsonParser); - - - Map preKeyMap = new HashMap<>(); - if (node.isArray()) { - for (JsonNode preKey : node) { - Integer preKeyId = preKey.get("id").asInt(); - try { - preKeyMap.put(preKeyId, Base64.decode(preKey.get("record").asText())); - } catch (IOException e) { - System.out.println(String.format("Error while decoding prekey for: %s", preKeyId)); - } - } - } - - JsonSignedPreKeyStore keyStore = new JsonSignedPreKeyStore(); - keyStore.addSignedPreKeys(preKeyMap); - - return keyStore; - - } - } - - public static class JsonSignedPreKeyStoreSerializer extends JsonSerializer { - - @Override - public void serialize(JsonSignedPreKeyStore jsonPreKeyStore, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { - json.writeStartArray(); - for (Map.Entry signedPreKey : jsonPreKeyStore.store.entrySet()) { - json.writeStartObject(); - json.writeNumberField("id", signedPreKey.getKey()); - json.writeStringField("record", Base64.encodeBytes(signedPreKey.getValue())); - json.writeEndObject(); - } - json.writeEndArray(); - } - } -}