blob: be0ab60c1f50159e4753e39ac11494973cd56806 [file] [log] [blame]
Paul Bakkerc7bb02b2013-09-15 14:54:56 +02001/* BEGIN_HEADER */
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +00002#include "mbedtls/pk.h"
3#include "mbedtls/pem.h"
4#include "mbedtls/oid.h"
Paul Bakkerc7bb02b2013-09-15 14:54:56 +02005/* END_HEADER */
6
7/* BEGIN_DEPENDENCIES
Paul Bakker4606c732013-09-15 17:04:23 +02008 * depends_on:POLARSSL_PK_WRITE_C:POLARSSL_BIGNUM_C:POLARSSL_FS_IO
Paul Bakkerc7bb02b2013-09-15 14:54:56 +02009 * END_DEPENDENCIES
10 */
11
Manuel Pégourié-Gonnardf9378d82014-06-24 13:11:25 +020012/* BEGIN_CASE depends_on:POLARSSL_PEM_WRITE_C */
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020013void pk_write_pubkey_check( char *key_file )
14{
15 pk_context key;
16 unsigned char buf[5000];
17 unsigned char check_buf[5000];
18 int ret;
19 FILE *f;
Paul Bakker8a0c0a92014-04-17 16:08:20 +020020 size_t ilen;
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020021
22 memset( buf, 0, sizeof( buf ) );
23 memset( check_buf, 0, sizeof( check_buf ) );
24
25 pk_init( &key );
26 TEST_ASSERT( pk_parse_public_keyfile( &key, key_file ) == 0 );
27
28 ret = pk_write_pubkey_pem( &key, buf, sizeof( buf ) - 1);
29 TEST_ASSERT( ret >= 0 );
30
31 f = fopen( key_file, "r" );
32 TEST_ASSERT( f != NULL );
Paul Bakker8a0c0a92014-04-17 16:08:20 +020033 ilen = fread( check_buf, 1, sizeof( check_buf ) - 1, f );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020034 fclose( f );
35
Paul Bakker8a0c0a92014-04-17 16:08:20 +020036 TEST_ASSERT( ilen == strlen( (char *) buf ) );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020037 TEST_ASSERT( strncmp( (char *) buf, (char *) check_buf, sizeof( buf ) ) == 0 );
38
Paul Bakkerbd51b262014-07-10 15:26:12 +020039exit:
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020040 pk_free( &key );
41}
42/* END_CASE */
43
Manuel Pégourié-Gonnardf9378d82014-06-24 13:11:25 +020044/* BEGIN_CASE depends_on:POLARSSL_PEM_WRITE_C */
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020045void pk_write_key_check( char *key_file )
46{
47 pk_context key;
48 unsigned char buf[5000];
49 unsigned char check_buf[5000];
50 int ret;
51 FILE *f;
Paul Bakker8a0c0a92014-04-17 16:08:20 +020052 size_t ilen;
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020053
54 memset( buf, 0, sizeof( buf ) );
55 memset( check_buf, 0, sizeof( check_buf ) );
56
57 pk_init( &key );
58 TEST_ASSERT( pk_parse_keyfile( &key, key_file, NULL ) == 0 );
59
60 ret = pk_write_key_pem( &key, buf, sizeof( buf ) - 1);
61 TEST_ASSERT( ret >= 0 );
62
63 f = fopen( key_file, "r" );
64 TEST_ASSERT( f != NULL );
Paul Bakker8a0c0a92014-04-17 16:08:20 +020065 ilen = fread( check_buf, 1, sizeof( check_buf ) - 1, f );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020066 fclose( f );
67
Paul Bakker8a0c0a92014-04-17 16:08:20 +020068 TEST_ASSERT( ilen == strlen( (char *) buf ) );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020069 TEST_ASSERT( strncmp( (char *) buf, (char *) check_buf, sizeof( buf ) ) == 0 );
70
Paul Bakkerbd51b262014-07-10 15:26:12 +020071exit:
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020072 pk_free( &key );
73}
74/* END_CASE */