• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/apple.php
  • Класс: CAppleInterface
  • Вызов: CAppleInterface::fetchPublicKey
private function fetchPublicKey()
{
	$publicKeyDetails = [];

	$http = new HttpClient([
		'socketTimeout' => $this->httpTimeout,
		'streamTimeout' => $this->httpTimeout,
	]);
	$publicKeys = $http->get(self::PUBLIC_KEYS_URL);

	try
	{
		$decodedPublicKeys = json_decode($publicKeys, true);
	}
	catch (Exception $e)
	{
		return false;
	}

	if (!isset($decodedPublicKeys['keys']) || count($decodedPublicKeys['keys']) < 1)
	{
		return false;
	}

	$parsedPublicKeys = JWK::parseKeySet($decodedPublicKeys['keys']);

	foreach ($parsedPublicKeys as $keyId => $publicKey)
	{
		$details = openssl_pkey_get_details($publicKey);
		$publicKeyDetails[$keyId] = $details['key'];
	}

	return $publicKeyDetails;
}