Try to prevent some misuse of RSA functions

fixes #331
diff --git a/library/rsa.c b/library/rsa.c
index 3883d09..1f907b7 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -359,6 +359,10 @@
     size_t olen;
     mbedtls_mpi T, T1, T2;
 
+    /* Make sure we have private key info, prevent possible misuse */
+    if( ctx->P.p == NULL || ctx->Q.p == NULL || ctx->D.p == NULL )
+        return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
+
     mbedtls_mpi_init( &T ); mbedtls_mpi_init( &T1 ); mbedtls_mpi_init( &T2 );
 
 #if defined(MBEDTLS_THREADING_C)