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;
}
Exemple #3
0
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);
}