public bool registerPreKeys(IdentityKey identityKey, PreKeyRecord lastResortKey, SignedPreKeyRecord signedPreKey, IList <PreKeyRecord> records) //throws IOException { List <PreKeyEntity> entities = new List <PreKeyEntity>(); foreach (PreKeyRecord record in records) { PreKeyEntity entity = new PreKeyEntity(record.getId(), record.getKeyPair().getPublicKey()); entities.Add(entity); } PreKeyEntity lastResortEntity = new PreKeyEntity(lastResortKey.getId(), lastResortKey.getKeyPair().getPublicKey()); SignedPreKeyEntity signedPreKeyEntity = new SignedPreKeyEntity(signedPreKey.getId(), signedPreKey.getKeyPair().getPublicKey(), signedPreKey.getSignature()); makeRequest(string.Format(PREKEY_PATH, ""), "PUT", JsonUtil.toJson(new PreKeyState(entities, lastResortEntity, signedPreKeyEntity, identityKey))); return(true); }
public void replaceOmemoPreKey(uint preKeyId, IOmemoStore omemoStore) { // Remove key: foreach (PreKeyRecord key in OMEMO_PRE_KEYS) { if (key.getId() == preKeyId) { OMEMO_PRE_KEYS.Remove(key); omemoStore.RemovePreKey(preKeyId); break; } } // Generate new key: PreKeyRecord newKey = KeyHelper.generatePreKeys(preKeyId, 1)[0]; OMEMO_PRE_KEYS.Add(newKey); omemoStore.StorePreKey(newKey.getId(), newKey); omemoBundleInfoAnnounced = false; }