Fix bounds and error checking in gen_key.c
diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c
index 4cbbd0f..767d621 100644
--- a/programs/pkey/gen_key.c
+++ b/programs/pkey/gen_key.c
@@ -248,7 +248,8 @@
else if( strcmp( p, "rsa_keysize" ) == 0 )
{
opt.rsa_keysize = atoi( q );
- if( opt.rsa_keysize < 1024 || opt.rsa_keysize > 8192 )
+ if( opt.rsa_keysize < 1024 ||
+ opt.rsa_keysize > POLARSSL_MPI_MAX_BITS )
goto usage;
}
else if( strcmp( p, "ec_curve" ) == 0 )
@@ -373,7 +374,18 @@
#endif
printf(" ! key type not supported\n");
- write_private_key( &key, opt.filename );
+ /*
+ * 1.3 Export key
+ */
+ printf( " . Writing key to file..." );
+
+ if( ( ret = write_private_key( &key, opt.filename ) ) != 0 )
+ {
+ printf( " failed\n" );
+ goto exit;
+ }
+
+ printf( " ok\n" );
exit: