update.rdf, signé et généré en PHP, impossible ?!

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Répondre
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

update.rdf, signé et généré en PHP, impossible ?!

Message par ~HP »

Bon, j'arrive assez "facilement" à lister et à lire mes extensions grâce à PHP…
Maintenant, je voudrais générer un update.rdf dynamique…

Et là une question, quel est le rapport entre la clef updateKey du install.rdf :

Code : Tout sélectionner

<em:updateKey></em:updateKey>
Et la clef signature du update.rdf ?

Code : Tout sélectionner

<em:signature></em:signature>
Sont elles censées être identiques, a priori, je dirais oui…
cependant les histoires à propos de Mc Coy, je n'y comprends pas grand chose :roll:.

http://code.google.com/p/firefox-mac-pd ... update.rdf

J'aurai, probablement, d'autres questions… mais une chose à la fois… :lol:

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090429 Minefield/3.5b5pre
Dernière modification par ~HP le 01 mai 2009, 12:10, modifié 1 fois.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

em:signature est généré par McCoy à partir de la clé publique, et on le mets dans le fichier de mise à jour (typiquement un update.rdf). McCoy a besoin du em:updateLink et du em:updateHash, que l'on aura préalablement mis dans le update.rdf, pour pouvoir calculer la signature.

La clé publique se trouve dans em:UpdateKey. On la voit un peu partout, mais c'est surtout dans le install.rdf de la version précédente de l'extension qu'elle est utile :wink:

Je crois qu'on a un tuto assez clair sur le sujet : http://extensions.geckozone.org/SignerUneExtension :)
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

Message par ~HP »

calimo a écrit :Je crois qu'on a un tuto assez clair sur le sujet : http://extensions.geckozone.org/SignerUneExtension :)
Déjà lu ;)

Par contre, si on veut générer le update.rdf automatiquement…
je ne comprends pas trop (euphémisme) comment faire…

y à que là dessus que je bloque :?, tout le reste est OP.


Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090429 Minefield/3.5b5pre
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

Message par ~HP »

calimo a écrit :em:signature est généré par McCoy à partir de la clé publique, et on le mets dans le fichier de mise à jour (typiquement un update.rdf). McCoy a besoin du em:updateLink et du em:updateHash, que l'on aura préalablement mis dans le update.rdf, pour pouvoir calculer la signature.
Visiblement ici :
http://code.google.com/p/firefox-mac-pd ... update.rdf?
il n'y a qu'une seule signature en tête du RDF… alors d'où vient elle ?

Y a vraiment un truc qui m'échappe… :roll:

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090429 Minefield/3.5b5pre
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

~HP a écrit :Par contre, si on veut générer le update.rdf automatiquement…
Ah là, je ne sais pas du tout par contre :oops:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

Message par ~HP »

Ouais… après de nombreuses recherches… je ne pense pas que ce soit actuellement possible ! :roll:

J'ai bien essayé de lire les sources de McCoy, mais comme je ne comprends pas grand chose au C++, ça ne m'a guère aidé !

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090430 Minefield/3.5b5pre
the worms
Gecko
Messages : 64
Inscription : 18 janv. 2005, 15:05

Message par the worms »

L'outil de McCoy t'ecrit automatiquement ton update.rdf ainsi que l'install.rdf.

Il te suffit d'aller sur le deuxième menu et de choisir update.rdf ( j'ai pas le nom de tête :oops: ) et il'tintègrera la clé que tu as créé directement dans ton fichier update.rdf.
Puis utilise l'outil dans le même menu pour vérifié la validité de ta clé ;)

J'espère avoir répondu à ta question, ou sinon j'ai pas compris ta question :p

Message envoyé avec : Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 (.NET CLR 3.5.30729)
ImageImage
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

Message par ~HP »

the worms a écrit :J'espère avoir répondu à ta question, ou sinon j'ai pas compris ta question :p
pas compris la question :wink: …

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090430 Minefield/3.5b5pre
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

the worms a écrit :J'espère avoir répondu à ta question, ou sinon j'ai pas compris ta question :p
La question est qu'il veut justement s'affranchir de l'utilisation de McCoy :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10
Avatar de l’utilisateur
~HP
Varan
Messages : 1141
Inscription : 29 juin 2008, 13:22

Message par ~HP »

Voilà ! Exactement…
c'est d'ailleurs pourquoi j'avais modifié le titre du topic…

sinon, une démo ici (quasiment opérationnelle) : langpack-fr-Fx.rdf?highlight,
en HTML avec un peu de coloration syntaxique, ce n'est qu'une démo…
et ici : langpack-fr-Fx.rdf, la même chose, en XML.

il ne manque, donc, que la signature :evil: :roll: :? :cry: …

Je me suis un peu amusé à rajouter quelques Dublin Core et Atom, puisque c'est du XML on peut le faire, je doute que ça puisse gêner un Mozilla, bien que ça ne soit pas indispensable, mais ça me permet d'afficher quelques informations utiles qui sinon devraient être mises en commentaires…

pour info, le dossier qui est parcouru contient plus de 15 éléments… au moins une douzaine doivent être des extensions… mais ma classe se base, notamment, sur la possible utilisation d'une regex pour cibler les éléments intéressants :

Code : Tout sélectionner

<?php
$RDF = new UpdateRDF(__BASEDIR__);
$RDF->setPattern('langpack-fr-Fx(.*)\.xpi');
$RDF->setSignature('ID0gbmV3IFVwZGF0ZVJERihfX0JBU0VESVJfXyk7Ci0'.
		   '+c2V0UGF0dGVybignbGFuZ3BhY2stZnItRngoLiopXC'.
		   '54cGknKTsKLT5zZXRTaWduYXR1cmUoJ2xhX3NpZ25hdH'.
		   'VyZV9kZV9NY0NveScpOwot');
$RDF->setID('extension@somewhere.tld');
$RDF->setPathURL(__BASEURL__);
$RDF->outputRDF();
?>
Le classement (ordre des éléments du flux) se base sur les dates de modification… ce qui explique que présentement une version 3.5b4 puisse se trouver avant une 3.5b5. Une batterie de test est effectuée excluant, ainsi, les extensions ne respectant pas un certain formalisme dans le install.rdf, et celles dont la signature ou l'id ne correspondraient pas.

L'intérêt "profond" de la chose, c'est que maintenant il suffit d'ajouter une extension (répondant aux exigences) dans le dossier parent pour avoir un update.rdf à jour ! Tout simplement…

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr-FR; rv:1.9.1b5pre) Gecko/20090501 Minefield/3.5b5pre
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 16 invités