Made message signing in Cryptography use SHA512 as the message content for... #1

Closed
netkas wants to merge 421 commits from master into dev
2 changed files with 49 additions and 4 deletions
Showing only changes of commit 57d5528b31 - Show all commits

View file

@ -46,14 +46,11 @@
try
{
$contacts = ContactManager::getContacts($request->getPeer(), $limit, $page);
return $rpcRequest->produceResponse(ContactManager::getStandardContacts($request->getPeer(), $limit, $page));
}
catch(DatabaseOperationException $e)
{
throw new StandardRpcException('Failed to get contacts', StandardError::INTERNAL_SERVER_ERROR, $e);
}
return $rpcRequest->produceResponse(array_map(function($contact) {return $contact->toStandard();}, $contacts));
}
}

View file

@ -284,6 +284,54 @@
return $contacts;
}
/**
* Retrieves a list of standard contacts associated with a specific peer.
*
* @param string $peerUuid The unique identifier for the peer whose contacts are to be retrieved.
* @param int $limit The maximum number of contacts to retrieve per page. Defaults to 100.
* @param int $page The page number to retrieve. Defaults to 1.
* @return ContactRecord[] An array of ContactRecord instances representing the contacts for the given peer.
* @throws DatabaseOperationException If the database query fails.
*/
public static function getStandardContacts(string $peerUuid, int $limit=100, int $page=1): array
{
if ($page < 1)
{
$page = 1;
}
if ($limit < 1)
{
$limit = 1;
}
$contacts = [];
try
{
$statement = Database::getConnection()->prepare("SELECT uuid FROM contacts WHERE peer_uuid=:peer ORDER BY created DESC LIMIT :limit OFFSET :offset");
$offset = ($page - 1) * $limit;
$statement->bindParam(':peer', $peerUuid);
$statement->bindParam(':limit', $limit, PDO::PARAM_INT);
$statement->bindParam(':offset', $offset, PDO::PARAM_INT);
$statement->execute();
// Fetch results
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
// Convert results to ContactRecord instances
foreach ($results as $result)
{
$contacts[] = self::getStandardContact($peerUuid, $result['uuid']);
}
}
catch (PDOException $e)
{
throw new DatabaseOperationException('Failed to get contacts from the database', $e);
}
return $contacts;
}
/**
* Adds a signing key to a contact in the database.
*