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");
}

2 réflexions au sujet de « Problème de signature »

Laisser un commentaire