lNet (n.-v.) aktive Verbindung auf SSL (TLS1.0) umschalten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

lNet (n.-v.) aktive Verbindung auf SSL (TLS1.0) umschalten

Beitrag von mark332 »

Hey Leute,

ich bins (mal wieder :oops: )

Ich schreibe derzeit eine Server-Anwendung, die aufgrund der Beschaffenheit des Logins in einer aktiven Verbindung von 'unverschlüsselt' zu 'verschlüsselt' wechseln muss. Leider habe ich probleme, das mit lNet korrekt hinzubekommen :/

Gewünscht ist auch, dass jeder Socket, der verschlüsselt läuft ein anderes Passwort/eine andere Passphrase benutzt.


Ich hab das schonmal auf diese Art versucht:

Code: Alles auswählen

 
procedure THWServer.Elevate(aSock: TLSocket; PassWd: String);
var
  lSess: TLSSLSession;
  lrespObj: TJSONObject;
  lArr: TJSONArray;
begin
  try
    WriteLn(aSock.Session.ClassName); // "TLSSLSession"
    WriteLn(TLSSLSession(aSock.Session).CAFile); "settings/cert"
    WriteLn(TLSSLSession(aSock.Session).KeyFile); "settings/pkey"
 
    lrespObj := TJSONObject.Create;
    lrespObj.Add('sender', 'server');
    lrespObj.Add('type', 'command');
    lrespObj.Add('command', 'elevate');
 
    lArr := TJSONArray.Create;
    lArr.Add(TJSONObject.Create.Add('protocol', 'TLS_1.0'));
 
    lrespObj.Add('parameters', lArr);
    FConnection.SendMessage(JSONToString(lrespObj), aSock);
    //lrespObj.Free;
    //lArr.Clear;
 
    TLSSLSession(aSock.Session).Password := PassWd;
    //aSock.SetState( ssSSLActive ); //funzt nicht, SIGSEGV
    TLSSLSession(aSock.Session).SSLActive := True; //geht auch nicht, auch SIGSEGV (bei "ssl_set_decrypt_key" falls das hilft...)
  except
  end;
end;
 
SSLMethod ist "msTLSv1"

Ich würde mich sehr freuen, wenn mir wieder jemand von euch auf die Sprünge helfen kann :)

MfG

mark332
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Antworten