Publication du code source

Le code source de sylabe en php en date du 24/10/2013 est publiée sur le wiki de nebule.

En attendant d’avoir tout le nécessaire pour une auto-publication, c’est à dire sous forme d’objets et liens nebule (par l’entité bachue), la diffusion du code source se fera sous cette forme.
Il en est de même pour la librairie de référence de nebule en php.

La page contenant le code : http://wiki.nebule.org/index.php/Documentation_-_Impl%C3%A9mentations_de_r%C3%A9f%C3%A9rences_-_projet_sylabe

La page concernant la librairie de référence nebule: http://wiki.nebule.org/index.php/Documentation_-_Impl%C3%A9mentations_de_r%C3%A9f%C3%A9rences_-_php

CF : nebule РLibrairie de r̩f̩rence php

Avancement

La signature de lien marche chez moi avec la fonction openssl_sign. Ça me permet d’avancer le temps de trouver à faire marcher convenablement la fonction openssl_private_encrypt.

Il est maintenant possible de faire générer des liens par sylabe en interne, mais aussi via des liens. Ça permet de mettre en place des liens web qui activeront, si sélectionnés, la créations de liens nebule. Le tout en revenant directement à la même page. Cette création à distance est conditionnée par une variable de verrouillage $nebule_permitcreatelink.

Ensuite, Diana m’a créé de nouvelles icônes pour l’affichage des liens dans sylabe. Les voici :

llllllflu
lslklelx
ld
lo

Merci :-)

Il ne me reste qu’à les refaire au propre…

Problème de signature

Je coince sur la génération de lien, plus exactement sur la signature. Le résultat pour un lien déjà connu ne me donne pas la même signature… alors que le code pour vérifier la signature des liens existants marche bien maintenant.

Le code qui ne me retourne pas la bonne valeur :

function _l_gen($dat, $typ, $src, $dst, $met)
{ global $nebule_publ_entite, $nebule_priv_entite, $nebule_pass_entite;
  if ($nebule_publ_entite == '') return(false);
  if ($nebule_priv_entite == '') return(false);
  if ($nebule_pass_entite == '') return(false);
  if (! file_exists("o/$nebule_priv_entite")) return(false);
  if ($typ == '') return(false);
  if ($src == '') return(false);
  if ($dst == '') return(false);
  if ($met == '') return(false);
  if ($dat == '-') $dat = date(DATE_ATOM);
  $privcert=(nebReadObjText($nebule_priv_entite,10000));
  $private_key=openssl_pkey_get_private($privcert, $nebule_pass_entite);
  if ($private_key === false) { return(false); }
  $data='_'.$nebule_publ_entite.'_'.$dat.'_'.$typ.'_'.$src.'_'.$dst.'_'.$met;
  $hexsign='';
  $binary_signature='';
  $hashdata=hash("sha256", $data);
  $binhash = pack("H*", $hashdata);
  $ok=openssl_private_encrypt($binhash, $binary_signature, $private_key, OPENSSL_PKCS1_PADDING);
  unset($private_key);
  unset($hashdata);
  unset($binhash);
  if ($ok === false) return(false);
  $hexsign = bin2hex($binary_signature);
  return("$hexsign.sha256$data");
}

Avancement

Le code de sylabe à progressé sans cesse même pendant mes vacances, mais les versions intermédiaires ne sont pas encore assez stables pour être mise en ligne.

En changements récents, je mettais en place le Téléchargement et suivi de liens u et suite avec notamment un fichier .htaccess . Mais suite à la réflexion Echanges via http – suite, j’enlève tout ça pour revenir à une solution finalement plus simple…

Il faut attendre encore un peu pour une mise en ligne…