Updated key_app.c and key_app_writer.c for EC key printing
diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c
index 3257635..672ebf1 100644
--- a/programs/pkey/key_app_writer.c
+++ b/programs/pkey/key_app_writer.c
@@ -33,6 +33,7 @@
#include "polarssl/config.h"
+#include "polarssl/error.h"
#include "polarssl/pk.h"
#include "polarssl/error.h"
@@ -254,7 +255,8 @@
if( ret != 0 )
{
- printf( " failed\n ! pk_parse_key returned %d", ret );
+ polarssl_strerror( ret, (char *) buf, sizeof(buf) );
+ printf( " failed\n ! pk_parse_keyfile returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
@@ -280,6 +282,17 @@
}
else
#endif
+#if defined(POLARSSL_ECP_C)
+ if( pk_get_type( &key ) == POLARSSL_PK_ECKEY )
+ {
+ ecp_keypair *ecp = pk_ec( key );
+ mpi_write_file( "Q(X): ", &ecp->Q.X, 16, NULL );
+ mpi_write_file( "Q(Y): ", &ecp->Q.Y, 16, NULL );
+ mpi_write_file( "Q(Z): ", &ecp->Q.Z, 16, NULL );
+ mpi_write_file( "D : ", &ecp->d , 16, NULL );
+ }
+ else
+#endif
printf("key type not supported yet\n");
}
@@ -295,7 +308,8 @@
if( ret != 0 )
{
- printf( " failed\n ! pk_parse_public_key returned %d", ret );
+ polarssl_strerror( ret, (char *) buf, sizeof(buf) );
+ printf( " failed\n ! pk_parse_public_key returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
@@ -315,6 +329,16 @@
}
else
#endif
+#if defined(POLARSSL_ECP_C)
+ if( pk_get_type( &key ) == POLARSSL_PK_ECKEY )
+ {
+ ecp_keypair *ecp = pk_ec( key );
+ mpi_write_file( "Q(X): ", &ecp->Q.X, 16, NULL );
+ mpi_write_file( "Q(Y): ", &ecp->Q.Y, 16, NULL );
+ mpi_write_file( "Q(Z): ", &ecp->Q.Z, 16, NULL );
+ }
+ else
+#endif
printf("key type not supported yet\n");
}
else