After reading the excellent answers here and documents about how SSL works. I have a doubt about what the function of the ClientKeyExchange step is. In the above linked answer and document it says that the client part of the key is sent encrypted via the server public key.
So does that mean that the client is responsible for selecting the symmetric key that is used to encrypt/decrypt the actual data ?
If so then can the client be trusted enough to generate a strong encryption key ?
What is the role of the server in the symmetric key generation ?