blob: e172315b8a291434d664116b168ed8a3abd81dde [file] [log] [blame]
Paul Bakkerc7bb02b2013-09-15 14:54:56 +02001/* BEGIN_HEADER */
2#include <polarssl/pk.h>
3#include <polarssl/pem.h>
4#include <polarssl/oid.h>
5/* 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
39 pk_free( &key );
40}
41/* END_CASE */
42
Manuel Pégourié-Gonnardf9378d82014-06-24 13:11:25 +020043/* BEGIN_CASE depends_on:POLARSSL_PEM_WRITE_C */
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020044void pk_write_key_check( char *key_file )
45{
46 pk_context key;
47 unsigned char buf[5000];
48 unsigned char check_buf[5000];
49 int ret;
50 FILE *f;
Paul Bakker8a0c0a92014-04-17 16:08:20 +020051 size_t ilen;
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020052
53 memset( buf, 0, sizeof( buf ) );
54 memset( check_buf, 0, sizeof( check_buf ) );
55
56 pk_init( &key );
57 TEST_ASSERT( pk_parse_keyfile( &key, key_file, NULL ) == 0 );
58
59 ret = pk_write_key_pem( &key, buf, sizeof( buf ) - 1);
60 TEST_ASSERT( ret >= 0 );
61
62 f = fopen( key_file, "r" );
63 TEST_ASSERT( f != NULL );
Paul Bakker8a0c0a92014-04-17 16:08:20 +020064 ilen = fread( check_buf, 1, sizeof( check_buf ) - 1, f );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020065 fclose( f );
66
Paul Bakker8a0c0a92014-04-17 16:08:20 +020067 TEST_ASSERT( ilen == strlen( (char *) buf ) );
Paul Bakkerc7bb02b2013-09-15 14:54:56 +020068 TEST_ASSERT( strncmp( (char *) buf, (char *) check_buf, sizeof( buf ) ) == 0 );
69
70 pk_free( &key );
71}
72/* END_CASE */