IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Langage Delphi Discussion :

[D7/ICS] TLS1.2 ne fonctionne pas sur certains Win10Pro ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut [D7/ICS] TLS1.2 ne fonctionne pas sur certains Win10Pro ?
    Bonjour à tous,

    Sous D7, j'utilise le composant SSLHttpCli (et SSlContext associé) de chez ICS pour récupérer une info sur un WebService.

    Tout fonctionne très bien lorsque mon logiciel ne tourne pas sous certains Win10Pro.

    J'ai un Win10Pro chez moi et cela fonctionne très bien.

    Y-a-t-il quelque chose à savoir sur Win10Pro, sur le protocol TLS1.2, Delphi 7 qui ferait que cela ne fonctionne pas ?
    J'ai essayé de virer l'antivirus mais rien n'y fait.

    Auriez vous une idée ? J'ai demandé plus d'information car pour l'instant je n'ai même pas une info sur une erreur éventuelle.
    Ajout: J'ai une erreur "Connection aborted on request"

    Voici mon bout de 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    function TOPSKey.GetOPSToken : String;
    var
      Data    : AnsiString;
      RcvStrm : TMemoryStream;
      SndStrm : TMemoryStream;
      c       : PChar;
      Cle     : String;
      F       : TFileStream;
    begin
      Result                := '';
      SndStrm               := TMemoryStream.Create;
      RcvStrm               := TMemoryStream.Create;
      Data                  := 'grant_type=client_credentials';
     
      SSL2.Proxy            := Trim(Main.ProxyHostName);
      SSL2.ProxyPort        := Trim(Main.ProxyPort);
      SSL2.ProxyUsername    := Trim(Main.ProxyUserName);
      SSL2.ProxyPassword    := Trim(Main.ProxyPassword);
     
      SSL2.SendStream       := SndStrm;
      SSL2.SendStream.Write(Data[1], Length(Data));
      SSL2.SendStream.Seek(0,0);
      SSL2.RcvdStream       := RcvStrm;
      SSL2.URL              := 'https://xxxxxxx/accesstoken';
      try
        SSL2.Post;
      finally
     
        RcvStrm.Seek(0, 0);
        SetLength(Data, RcvStrm.Size);
        RcvStrm.Read(Data[1], Length(Data));
     
        c := PChar(Data);
        If Scan('"access_token": "', '",', c, Cle) then
          result  := Cle;
     
     
        // Ce bout de code vient d'être ajouté pour avoir plus d'info du client et eventuellement si il y a une erreur
        F:=TFileStream.Create(Main.WorkingPath+'token.log', fmCreate);
        Try
          WriteLn(F, 'Token Information');
          WriteLn(F, Data);
        Finally
          F.Free;
        End;
     
        RcvStrm.Free;
        SndStrm.Free;
      end;
    end;

  2. #2
    Membre du Club Avatar de SuiSeb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2019
    Messages : 30
    Points : 55
    Points
    55
    Par défaut
    Bonsoir,

    Je ne sais pas si cela répondra à ta question, n'utilisant pas ICS.

    En faisant une recherche rapide sur Google, j'ai trouvé ça :
    libeay32.dll is long obsolete and support is discontinuied later this year. You should be using OpenSSL 1.1.1 which has been supported for about a year.
    Sur le site (je ne sais pas si je peux le mettre mais bon je tente) : https://en.delphipraxis.net/topic/15...ed-on-request/
    Je ne sais pas si cela pourra t'aider, ni répondre à ta question.
    Tiens moi au courant.

    Bonne soirée,
    Seb.
    Chef de projet et développeur Delphi (version 1, 4, 7, 2005, 2007, Rio) depuis plus de 20 ans.
    Bases de données : Oracle (9i, 11g, 12c), MySQL (5, 6, 8), Pervasive SQL, Interbase…

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Salut Seb,

    Effectivement le problème venait bien de là.
    En effet libeay32.dll et ssleay32.dll sont obsolètes.

    il a fallu que j'utilise une version compatible et récente avec ICS en ajoutant les fichiers
    libcrypto-1.1.dll et libssl-1.1.dll

    J'ajoute résolu à mon problème !

    Merci !

  4. #4
    Membre du Club Avatar de SuiSeb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2019
    Messages : 30
    Points : 55
    Points
    55
    Par défaut
    De rien, c'est un plaisir

    Bonne continuation,
    Seb.
    Chef de projet et développeur Delphi (version 1, 4, 7, 2005, 2007, Rio) depuis plus de 20 ans.
    Bases de données : Oracle (9i, 11g, 12c), MySQL (5, 6, 8), Pervasive SQL, Interbase…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2014, 19h26
  2. fsockopen ne fonctionne pas sur certains host
    Par toufika13 dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2014, 20h22
  3. Le php ne fonctionne pas sur certaine page ?
    Par dark vador 008 dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2009, 18h09
  4. Réponses: 1
    Dernier message: 22/06/2009, 10h16
  5. [ZF 1.7] [Zend_Lucene] $doc->addField ne fonctionne pas sur certains serveurs
    Par JeanVcrt dans le forum Autres composants
    Réponses: 1
    Dernier message: 13/02/2009, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo