X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/5859e7b9f78b5d8963c56c66b75530ee3f094bee..27d9424f1e7f607ac2dfad5b2164d065ffb79ef7:/src/main/java/cli/JsonPreKeyStore.java?ds=sidebyside diff --git a/src/main/java/cli/JsonPreKeyStore.java b/src/main/java/cli/JsonPreKeyStore.java deleted file mode 100644 index 393f1805..00000000 --- a/src/main/java/cli/JsonPreKeyStore.java +++ /dev/null @@ -1,97 +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.PreKeyRecord; -import org.whispersystems.libaxolotl.state.PreKeyStore; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -class JsonPreKeyStore implements PreKeyStore { - - private final Map store = new HashMap<>(); - - - public JsonPreKeyStore() { - - } - - public void addPreKeys(Map preKeys) { - store.putAll(preKeys); - } - - @Override - public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException { - try { - if (!store.containsKey(preKeyId)) { - throw new InvalidKeyIdException("No such prekeyrecord!"); - } - - return new PreKeyRecord(store.get(preKeyId)); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public void storePreKey(int preKeyId, PreKeyRecord record) { - store.put(preKeyId, record.serialize()); - } - - @Override - public boolean containsPreKey(int preKeyId) { - return store.containsKey(preKeyId); - } - - @Override - public void removePreKey(int preKeyId) { - store.remove(preKeyId); - } - - public static class JsonPreKeyStoreDeserializer extends JsonDeserializer { - - @Override - public JsonPreKeyStore 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)); - } - } - } - - JsonPreKeyStore keyStore = new JsonPreKeyStore(); - keyStore.addPreKeys(preKeyMap); - - return keyStore; - - } - } - - public static class JsonPreKeyStoreSerializer extends JsonSerializer { - - @Override - public void serialize(JsonPreKeyStore jsonPreKeyStore, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { - json.writeStartArray(); - for (Map.Entry preKey : jsonPreKeyStore.store.entrySet()) { - json.writeStartObject(); - json.writeNumberField("id", preKey.getKey()); - json.writeStringField("record", Base64.encodeBytes(preKey.getValue())); - json.writeEndObject(); - } - json.writeEndArray(); - } - } -}