Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

ASP mise en place HMAC SHA256 ou SHA512


Sujet :

ASP

  1. #1
    Membre actif
    ASP mise en place HMAC SHA256 ou SHA512
    Bonjour,

    Je suis contraint de mettre en place sur le site d'un client d'une solution paybox avec clef HMAC.
    Le site tourne sur ASP et le fonctionnement paiements sécurisé fonctionne déjà dessus, mais sans HMAC. C'est la banque qui impose cette migration.

    Sauf que là, j'avoue être un peu perdu. Les fonctions de conversion vers du 256 ou du 512 que j'ai pu glaner ci et la ne m'aident pas vraiment...
    Quand la fonction marche, il n'y a pas de possibilité de mettre en place la clef générée par l'organisme bancaire, quand elle marche pas... bon ben elle marche pas...

    Si quelqu'un avait déjà eu vent de ce genre de mise en place et quelques solutions à me tuyauter...
    Merci d'avance pour toute l'aide que vous pourrez me donner.

  2. #2
    Modérateur

    Juste pour etre sur que tu sois sur le bon forum, tu es en ASP ou en ASP.NET ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre actif
    Ah non, le déplacement n'était peut être pas nécessaire... je suis en ASP classic par en .net

  4. #4
    Membre actif
    Précision : a priori il me faudrait une fonction de hashage en 256 ou en 512 (seconde semble préférable à la première), voir une fonction qui me permet de passer en paramètre le type d'encodage et la clé à utiliser.
    J'en ai une sous la main qui semble ne pas me retourner les infos attendues par le serveur de paiement...
    Des idées ??
    Merci

  5. #5
    Membre actif
    Bon, tant pis, ai résolu le soucis autrement.

  6. #6
    Candidat au Club
    Bonjour Eclisse,

    j'ai exactement la même problématique (même language ASP classic, même système bancaire) sauf qu'il ne me reste plus que quelques jours pour la résoudre !
    Quelle a été votre solution finalement ?

    merci

  7. #7
    Membre actif
    Tu peux regarder sur ce lien qui te donne des bonnes fonctions d'encodage que tu vas pouvoir utiliser en jscript
    https://caligatio.github.io/jsSHA/

  8. #8
    Candidat au Club
    merci beaucoup eclisse,
    depuis ce matin je suis sur le sujet et les fonctions vers lesquelles tu m'as envoyé. Concernant la fonction HMAC,

    - en js client le script fonctionne j'obtient un résultat sans erreur lorsque je met une clé et une chaîne à encoder. Mais cela ne sert à rien puisque ce n'est pas ainsi qu'il va falloir l'utiliser.
    - par contre en script serveur j'obtient une erreur "Cet objet ne gère pas cette propriété ou cette méthode"

    Code asp :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- #include virtual="/site/SHA/sha.asp" --> 
     
    CLE = "280A7E956C9F181B9D1C5601AB98E6F6DC032D167CF450F5B1B3EDC3139A553CDC7947748E05DD6F79481506A0356AD51C4D8A44ABF1AAAAAAAAAAAAAAAAAAAAA"
     
    CHAINE = "PBX_SITE=" & PBX_SITE & "&PBX_RANG=" & PBX_RANG & "&PBX_IDENTIFIANT=" & PBX_IDENTIFIANT & "&PBX_TOTAL=" & montant & "&PBX_DEVISE=978&PBX_CMD=" & reference & "&PBX_PORTEUR=" & emailClient & "&PBX_RETOUR=erreur:E;ref:R;auto:A;trans:T&PBX_HASH=SHA256&PBX_TIME=" & TimeStamp
     
    HMAC = Ucase(HMAC_SHA(CLE,CHAINE)) 'fonction présente dans l'include et JScript ci dessous
     
    Response.write HMAC


    fichier include sha.asp
    Code asp :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script language="JScript" runat="Server" src="/site/SHA/sha.js"></script>
    <script language="JScript" runat="Server">
    function HMAC_SHA(CLE,CHAINE){
    	var shaObj = new jsSHA("SHA-512", "TEXT");
        shaObj.setHMACKey(CLE, "TEXT");
        shaObj.update(CHAINE);
        var hmac = shaObj.getHMAC("HEX");
        return hmac;
    }
    </script>


    J'ai bien l'impression que le moteur asp (jscript) ne comprend pas le js présent dans le fichier sha.js.

    C'est vrai qu'un extrait de ta page m'arrangerais bien

    merci en tous cas

  9. #9
    Membre actif
    il faudrait que je vois l'intégralité de ta page d'appel pour voir ce qui cloche. Envoi en mp si tu veux

  10. #10
    Membre habitué
    Bonjour,

    Je me permet de relancer ce post car une petite aide serait la bienvenue
    Si vous avez un petit tuto pour l'intégration en asp classic ...
    (je n'ai pas trouvé de solution qui fonctionne)
    Merci

  11. #11
    Membre expert
    Toujours le problème ?

    Il conviendrait de créer un nouveau topic... sinon celui-ci apparait comme résolu

    C'est souvent l'appel à this qui pose problème en Jscript, car par défaut il ne correspond pas à l'objet global contrairement à un navigateur.

  12. #12
    Membre habitué
    un nouveau topic a été créé par un membre dans le même cas que moi
    mais pas d'aide où de solution postées à ce jour

  13. #13
    Futur Membre du Club
    Citation Envoyé par beberman Voir le message


    J'ai bien l'impression que le moteur asp (jscript) ne comprend pas le js présent dans le fichier sha.js.

    C'est vrai qu'un extrait de ta page m'arrangerais bien

    merci en tous cas
    Bonjour. Je reprends ce post un peu ancien mais je bloque exactement au même endroit que toi beberman. As-tu trouvé une solution ?
    J'ai été voir sur le post traitant du même sujet mais je n'y ai pas trouvé de réponse

    Ce serait cool que je puisse enfin en finir avec cette implémentation de Paybox qui commence à me porter sur le système.

    Merci

  14. #14
    Membre actif
    Bonjour mimicmoi44,
    non la solution marche bien et il n'y a pas d'icompatibilité, il faut juste que je rejette un coup d'œil sur sa mise ne place que je n'ai plus vraiment en tête.
    Je suis en plein dev un peu casse pied aussi, je reviens vers toi aussi vite que possible.

  15. #15
    Futur Membre du Club
    J'ai mis en place ce code :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <script type="text/javascript" src="sha.js"></script>
    <script type="text/javascript">
    function calcHMAC(macle, machaine) {
    	try {
    		var hmacText = machaine;
    		var hmacTextType = 'TEXT';
    		var hmacKeyInput = macle;
    		var hmacKeyInputType = 'HEX';
    		var hmacVariant = 'SHA-512';
    		var hmacOutputType = 'HEX';
    		var hmacOutput = document.getElementById("PBX_HMAC");
    		var hmacObj = new jsSHA(hmacVariant, hmacTextType);
    		hmacObj.setHMACKey(hmacKeyInput, hmacKeyInputType);
    		hmacObj.update(hmacText);
    		hmacOutput.value = hmacObj.getHMAC(hmacOutputType).toUpperCase();
     
    	} catch(e) {
    		hmacOutput.value = e.message;
    	}
    }
    </script>

    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    <body onload="calcHMAC('<%=keyTest & "', '" & sChaineMAC%>')">



    Mais du coup, la clé est visible et je n'arrive pas à faire un appel ASP à la fonction js

    Voilà ce que je voudrai faire :
    Code asp :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    hmac=calcHMAC(keyTest,sChaineMAC)
    %>

    Mais ça ne fonctionne pas

  16. #16
    Futur Membre du Club
    Citation Envoyé par eclisse Voir le message
    Bonjour mimicmoi44,
    non la solution marche bien et il n'y a pas d'icompatibilité, il faut juste que je rejette un coup d'œil sur sa mise ne place que je n'ai plus vraiment en tête.
    Je suis en plein dev un peu casse pied aussi, je reviens vers toi aussi vite que possible.
    Bonjour Eclisse,

    As-tu eu l'occasion de regarder le code que tu a mis en place ? Comme je l'ai mis dans mon précédent POST la solution javascript fonctionne mais ce que me gène c'est que, de la façon dont je procède, la clé est en clair dans la page ... pas cool du tout. Je veux bien des pistes si tu as.

    Merci d'avance

  17. #17
    Membre actif
    Donne moi ton email en mp, je t'envoi du code!!

  18. #18
    Futur Membre du Club
    Envoyé en MP

    Merci

  19. #19
    Membre expert
    L'intérêt d'un forum comme celui-ci c'est de garder des traces des solutions.
    Vos échanges privés ne nous regardent pas, par contre les solutions apportées aux problèmes exposés regardent tout le monde ici.

  20. #20
    Membre actif
    Ouais ben t'es gentil, mais si tu regardes l'historique de mon post, y a pas grand monde qui m'ai filé un coup de main sur la question initiale... donc c'est en sortant les doigts du cul que j'y ai apporté tout seul comme un grand une soluce.
    Mais ça ne m'a pas empêché de répondre aux 2 personnes qui, comme moi, se sont trouvé face au même mur et de communiquer avec eux sur la solution et résoudre (à priori au moins pour le premier, on verra si ça convient à mimicmoi44) leur problème.

###raw>template_hook.ano_emploi###