Changeset View
Changeset View
Standalone View
Standalone View
src/crypto/crypto.cpp
| Show First 20 Lines • Show All 299 Lines • ▼ Show 20 Lines | void Crypto::setUploadedOneTimeKeysCount(immer::map<std::string /* algorithm */, int> uploadedOneTimeKeysCount) | ||||
| m_d->uploadedOneTimeKeysCount = uploadedOneTimeKeysCount; | m_d->uploadedOneTimeKeysCount = uploadedOneTimeKeysCount; | ||||
| } | } | ||||
| std::size_t Crypto::maxNumberOfOneTimeKeys() const | std::size_t Crypto::maxNumberOfOneTimeKeys() const | ||||
| { | { | ||||
| return m_d->account.value()->max_number_of_one_time_keys(); | return m_d->account.value()->max_number_of_one_time_keys(); | ||||
| } | } | ||||
| std::size_t Crypto::genOneTimeKeysRandomSize(int num) | std::size_t Crypto::genOneTimeKeysRandomSize([[maybe_unused]] int num) | ||||
| { | { | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| void Crypto::genOneTimeKeysWithRandom(RandomData random, int num) | void Crypto::genOneTimeKeysWithRandom([[maybe_unused]] RandomData random, int num) | ||||
| { | { | ||||
| assert(random.size() >= genOneTimeKeysRandomSize(num)); | assert(random.size() >= genOneTimeKeysRandomSize(num)); | ||||
| m_d->account.value()->generate_one_time_keys(num); | m_d->account.value()->generate_one_time_keys(num); | ||||
| m_d->numUnpublishedKeys += num; | m_d->numUnpublishedKeys += num; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 268 Lines • ▼ Show 20 Lines | namespace Kazv | ||||
| auto Crypto::devicesMissingOutboundSessionKey( | auto Crypto::devicesMissingOutboundSessionKey( | ||||
| immer::map<std::string, immer::map<std::string /* deviceId */, | immer::map<std::string, immer::map<std::string /* deviceId */, | ||||
| std::string /* curve25519IdentityKey */>> keyMap) const -> UserIdToDeviceIdMap | std::string /* curve25519IdentityKey */>> keyMap) const -> UserIdToDeviceIdMap | ||||
| { | { | ||||
| auto ret = UserIdToDeviceIdMap{}; | auto ret = UserIdToDeviceIdMap{}; | ||||
| for (auto [userId, devices] : keyMap) { | for (auto [userId, devices] : keyMap) { | ||||
| auto unknownDevices = | auto unknownDevices = | ||||
| intoImmer(immer::flex_vector<std::string>{}, | intoImmer(immer::flex_vector<std::string>{}, | ||||
| zug::filter([=](auto kv) { | zug::filter([this](auto kv) { | ||||
| auto [deviceId, theirCurve25519IdentityKey] = kv; | auto [deviceId, theirCurve25519IdentityKey] = kv; | ||||
| return m_d->knownSessions.find(theirCurve25519IdentityKey) | return m_d->knownSessions.find(theirCurve25519IdentityKey) | ||||
| == m_d->knownSessions.end(); | == m_d->knownSessions.end(); | ||||
| }) | }) | ||||
| | zug::map([=](auto kv) { | | zug::map([](auto kv) { | ||||
| auto [deviceId, key] = kv; | auto [deviceId, key] = kv; | ||||
| return deviceId; | return deviceId; | ||||
| }), | }), | ||||
| devices); | devices); | ||||
| if (! unknownDevices.empty()) { | if (! unknownDevices.empty()) { | ||||
| ret = std::move(ret).set(userId, std::move(unknownDevices)); | ret = std::move(ret).set(userId, std::move(unknownDevices)); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines | |||||