1 package org
.asamk
.signal
.manager
.storage
.protocol
;
3 import com
.fasterxml
.jackson
.core
.JsonParser
;
4 import com
.fasterxml
.jackson
.databind
.DeserializationContext
;
5 import com
.fasterxml
.jackson
.databind
.JsonDeserializer
;
6 import com
.fasterxml
.jackson
.databind
.JsonNode
;
8 import java
.io
.IOException
;
9 import java
.util
.Base64
;
10 import java
.util
.HashMap
;
13 public class LegacyJsonSignedPreKeyStore
{
15 private final Map
<Integer
, byte[]> signedPreKeys
;
17 private LegacyJsonSignedPreKeyStore(final Map
<Integer
, byte[]> signedPreKeys
) {
18 this.signedPreKeys
= signedPreKeys
;
21 public Map
<Integer
, byte[]> getSignedPreKeys() {
25 public static class JsonSignedPreKeyStoreDeserializer
extends JsonDeserializer
<LegacyJsonSignedPreKeyStore
> {
28 public LegacyJsonSignedPreKeyStore
deserialize(
29 JsonParser jsonParser
, DeserializationContext deserializationContext
30 ) throws IOException
{
31 JsonNode node
= jsonParser
.getCodec().readTree(jsonParser
);
33 var preKeyMap
= new HashMap
<Integer
, byte[]>();
35 for (var preKey
: node
) {
36 final var preKeyId
= preKey
.get("id").asInt();
37 final var preKeyRecord
= Base64
.getDecoder().decode(preKey
.get("record").asText());
38 preKeyMap
.put(preKeyId
, preKeyRecord
);
42 return new LegacyJsonSignedPreKeyStore(preKeyMap
);