ich bins (mal wieder
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;
Ich würde mich sehr freuen, wenn mir wieder jemand von euch auf die Sprünge helfen kann
MfG
mark332