SignedPreKeyRecord InMemorySignedPreKeyStore::loadSignedPreKey(uint64_t signedPreKeyId) { if (store.find(signedPreKeyId) != store.end()) { return SignedPreKeyRecord(store.at(signedPreKeyId)); } throw WhisperException("No such signedprekeyrecord! " + std::to_string(signedPreKeyId)); }
std::vector<SignedPreKeyRecord> InMemorySignedPreKeyStore::loadSignedPreKeys() { std::vector<SignedPreKeyRecord> results; for (auto & key: store) { results.push_back(SignedPreKeyRecord(key.second)); } return results; }
SignedPreKeyRecord KeyHelper::generateSignedPreKey(const IdentityKeyPair &identityKeyPair, qulonglong signedPreKeyId) { ECKeyPair keyPair = Curve::generateKeyPair(); QByteArray signature = Curve::calculateSignature(identityKeyPair.getPrivateKey(), keyPair.getPublicKey().serialize()); return SignedPreKeyRecord(signedPreKeyId, QDateTime::currentMSecsSinceEpoch(), keyPair, signature); }