Recent edits in RSAClientKeyExchange class made me realise that the exception handling could be more descriptive for end user. We hide root case for one scenario with the infamous "Unable to process PreMasterSecret, may be too big" message. We should be printing the exception that caused the InvalidKeyException to occur. I'll take this chance to made a few other minor edits in RSAClientKeyExchange and HandshakeMessage code also.