Add test for x509write_key
diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function
index 09dfff8..1393103 100644
--- a/tests/suites/test_suite_x509write.function
+++ b/tests/suites/test_suite_x509write.function
@@ -153,3 +153,32 @@
pk_free( &key );
}
/* END_CASE */
+
+/* BEGIN_CASE */
+void x509_key_check( char *key_file )
+{
+ pk_context key;
+ unsigned char buf[5000];
+ unsigned char check_buf[5000];
+ int ret;
+ FILE *f;
+
+ memset( buf, 0, sizeof( buf ) );
+ memset( check_buf, 0, sizeof( check_buf ) );
+
+ pk_init( &key );
+ TEST_ASSERT( x509parse_keyfile( &key, key_file, NULL ) == 0 );
+
+ ret = x509write_key_pem( pk_rsa( key ), buf, sizeof( buf ) - 1);
+ TEST_ASSERT( ret >= 0 );
+
+ f = fopen( key_file, "r" );
+ TEST_ASSERT( f != NULL );
+ fread( check_buf, 1, sizeof( check_buf ) - 1, f );
+ fclose( f );
+
+ TEST_ASSERT( strncmp( (char *) buf, (char *) check_buf, sizeof( buf ) ) == 0 );
+
+ pk_free( &key );
+}
+/* END_CASE */