2015-08-28 2 views
2

Est-ce que quelqu'un a réussi à implémenter cette partie? Apple a publié un certain code de référence avec le SDK FairPlay (aperçu), mais il y a quelques bits manquants. Existe-t-il des guides/tutoriels qui pourraient aider/guider la mise en œuvre?Mise en œuvre du module serveur Apple FairPlay Key

+0

Avez-vous réussi à le faire fonctionner? Je suis surpris qu'il y ait seulement quelques entrées sur l'implémentation d'Apple FairPlay et de KSM (Key Server Module). Je serais heureux si vous pouviez m'aider. Merci. –

+0

même question - avez-vous réussi à l'implémenter? –

Répondre

4

La partie la plus gênante de la référence est qu'il manque la clé privée qu'ils disent juste mettre dans un tableau. PROBLEME: la clé est dans un fichier pem et a une représentation textuelle. Après un peu de test, j'ai été capable de surmonter cela. J'ai pris le fichier .pem pertinent qui commence par la ligne "----- BEGIN RSA PRIVATE KEY -----", puis la base encodée base64 et se termine par "----- END RSA PRIVATE KEY-- --- "donc j'ai juste pris toutes les données (y compris les lignes d'ouverture et de fermeture) et l'ai converti en une représentation d'octets. Je utilisé le code python suivant file = open("dev_private_key.pem", "r") a = file.read() b = new bytearray(a) for ch in b: sys.stdout.write(str(ch)+",") Je pris cette sortie et juste collé dans la ligne nécessaire à SKDServerUtils.c il ressemble à ceci UInt8 const statique pKeyPem [] = {45,45,45,45, 45 ....}

Recompilé tout cela et cela fonctionne bien pour moi.

J'espère que cela aidera les gens dans le futur puisque je n'ai trouvé aucune meilleure documentation sur cette partie spécifique.

+0

Pouvez-vous élaborer, comment avez-vous pu gérer la mise en œuvre. Dans SDK fourni par apple, je peux voir quelques fichiers .h et .c. Où héberger ces fichiers? et comment gérer le client appelant le module de serveur de clé? – abhinavroy23

+1

Je l'ai exécuté avec un système Linux, j'ai créé mon propre makefile et l'ai compilé comme une bibliothèque partagée, alors vous pouvez utiliser n'importe quel framework pour charger cette bibliothèque. La méthode que vous devriez appeler est "SKDServerGenCKC" déclarée dans "SKDServer.h" Notez qu'il y a quelques endroits dans le code que vous devez éditer (ils sont clairement marqués) –