Refactor parse_server_key_exchange a bit
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 79c63fd..92800fe 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -1910,7 +1910,8 @@
 {
     int ret;
     size_t n = 0;
-    const ssl_ciphersuite_t *ciphersuite_info;
+    const ssl_ciphersuite_t *ciphersuite_info =
+                            ssl->transform_negotiate->ciphersuite_info;
 
 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                       \
     defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED) ||                       \
@@ -1924,15 +1925,11 @@
     ((void) dig_signed_len);
 #endif
 
-    ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
-
     SSL_DEBUG_MSG( 2, ( "=> write server key exchange" ) );
 
-    if( ciphersuite_info->key_exchange != POLARSSL_KEY_EXCHANGE_DHE_RSA &&
-        ciphersuite_info->key_exchange != POLARSSL_KEY_EXCHANGE_ECDHE_RSA &&
-        ciphersuite_info->key_exchange != POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA &&
-        ciphersuite_info->key_exchange != POLARSSL_KEY_EXCHANGE_DHE_PSK &&
-        ciphersuite_info->key_exchange != POLARSSL_KEY_EXCHANGE_ECDHE_PSK )
+    if( ciphersuite_info->key_exchange == POLARSSL_KEY_EXCHANGE_RSA ||
+        ciphersuite_info->key_exchange == POLARSSL_KEY_EXCHANGE_PSK ||
+        ciphersuite_info->key_exchange == POLARSSL_KEY_EXCHANGE_RSA_PSK )
     {
         SSL_DEBUG_MSG( 2, ( "<= skip write server key exchange" ) );
         ssl->state++;