PK: add nice interface functions

Also fix a const-corectness issue.
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 36c4f2f..0780da5 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -2517,10 +2517,13 @@
     }
 
     /* EC NOT IMPLEMENTED YET */
-    if( ssl->session_negotiate->peer_cert->pk.type != POLARSSL_PK_RSA )
+    if( ! pk_can_do( &ssl->session_negotiate->peer_cert->pk,
+                     POLARSSL_PK_RSA ) )
+    {
         return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+    }
 
-    n1 = pk_rsa( ssl->session_negotiate->peer_cert->pk )->len;
+    n1 = pk_get_size( &ssl->session_negotiate->peer_cert->pk ) / 8;
     n2 = ( ssl->in_msg[4 + n] << 8 ) | ssl->in_msg[5 + n];
 
     if( n + n1 + 6 != ssl->in_hslen || n1 != n2 )