AutorÃa | Ultima modificación | Ver Log |
<?php declare(strict_types=1);namespace EduSharingApiClient;use Exception;/*** Class EduSharingHelper** @author Torsten Simon <simon@edu-sharing.net>*/class EduSharingHelper{/*** Function generateKeyPair** generate a new key pair (private + public) to be registered in the edu-sharing repository* Store the data somewhere in your application, e.g. database* use the public key returned to register the application in edu-sharing* NOTE: This function will fail on windows-based systems!* @throws Exception*/public static function generateKeyPair(): array {$res = openssl_pkey_new();!$res && throw new Exception('No result from openssl_pkey_new. Please check your php installation');openssl_pkey_export($res, $privateKey);$publicKeyData = openssl_pkey_get_details($res);$publicKey = $publicKeyData['key'];return ['privateKey' => $privateKey,'publicKey' => $publicKey];}/*** Function generateEduAppXMLData** Generates an edu-sharing compatible xml file for registering the application* This is a very basic function and is only intended for demonstration or manual use. Data is not escaped!*/public static function generateEduAppXMLData(string $appId, string $publicKey, string $type = 'LMS', string $publicIP = '*'): string {return '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><entry key="appid">' . $appId . '</entry><entry key="public_key">' . $publicKey . '</entry><entry key="type">' . $type . '</entry><entry key="domain"></entry><!-- in case of wildcard host: Replace this, if possible, with the public ip from your service --><entry key ="host">' . $publicIP . '</entry><!-- must be true --><entry key="trustedclient">true</entry></properties>';}}