diff --git a/src/Socialbox/Objects/ExportedSession.php b/src/Socialbox/Objects/Client/ExportedSession.php similarity index 88% rename from src/Socialbox/Objects/ExportedSession.php rename to src/Socialbox/Objects/Client/ExportedSession.php index 4c7752c..db69534 100644 --- a/src/Socialbox/Objects/ExportedSession.php +++ b/src/Socialbox/Objects/Client/ExportedSession.php @@ -1,6 +1,6 @@ privateSharedSecret = $data['private_shared_secret']; $this->clientTransportEncryptionKey = $data['client_transport_encryption_key']; $this->serverTransportEncryptionKey = $data['server_transport_encryption_key']; + $this->defaultSigningKey = $data['default_signing_key'] ?? null; + $this->signingKeys = array_map(fn($key) => SignatureKeyPair::fromArray($key), $data['signing_keys']); } /** @@ -207,6 +214,26 @@ return $this->serverTransportEncryptionKey; } + /** + * Retrieves the default signing key associated with the current instance. + * + * @return string|null The default signing key. + */ + public function getDefaultSigningKey(): ?string + { + return $this->defaultSigningKey; + } + + /** + * Retrieves the signing keys associated with the current instance. + * + * @return SignatureKeyPair[] The signing keys. + */ + public function getSigningKeys(): array + { + return $this->signingKeys; + } + /** * @inheritDoc */ @@ -228,6 +255,8 @@ 'private_shared_secret' => $this->privateSharedSecret, 'client_transport_encryption_key' => $this->clientTransportEncryptionKey, 'server_transport_encryption_key' => $this->serverTransportEncryptionKey, + 'default_signing_key' => $this->defaultSigningKey, + 'signing_keys' => array_map(fn($key) => $key->toArray(), $this->signingKeys) ]; }