Skip to content

Commit

Permalink
Add negative testing for mbedtls_pem_read_buffer()
Browse files Browse the repository at this point in the history
  • Loading branch information
Andres AG committed Mar 1, 2017
1 parent 4590955 commit 8d37954
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
3 changes: 3 additions & 0 deletions tests/suites/test_suite_pem.data
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ mbedtls_pem_write_buffer:"-----START TEST-----\n":"-----END TEST-----\n":"000102

PEM write (exactly two lines + 1)
mbedtls_pem_write_buffer:"-----START TEST-----\n":"-----END TEST-----\n":"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F00":"-----START TEST-----\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAA==\n-----END TEST-----\n"

PEM read (malformed PEM)
mbedtls_pem_read_buffer:"-----BEGIN EC PRIVATE KEY-----":"-----END EC PRIVATE KEY-----":"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,AA94892A169FA426\n\nMAAA\n-----END EC PRIVATE KEY-----":"pwd":MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH
22 changes: 22 additions & 0 deletions tests/suites/test_suite_pem.function
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* BEGIN_HEADER */
#include "mbedtls/base64.h"
#include "mbedtls/pem.h"
#include "mbedtls/des.h"
/* END_HEADER */

/* BEGIN_DEPENDENCIES
Expand Down Expand Up @@ -38,3 +39,24 @@ exit:
mbedtls_free( check_buf );
}
/* END_CASE */

/* BEGIN_CASE */
void mbedtls_pem_read_buffer( char *header, char *footer, char *data, char *pwd,
int res )
{
mbedtls_pem_context ctx;
int ret;
size_t use_len = 0;
size_t pwd_len = strlen( pwd );

mbedtls_pem_init( &ctx );

ret = mbedtls_pem_read_buffer( &ctx, header, footer, (unsigned char *)data,
(unsigned char *)pwd, pwd_len, &use_len );
TEST_ASSERT( ret == res );

exit:
mbedtls_pem_free( &ctx );

}
/* END_CASE */

0 comments on commit 8d37954

Please sign in to comment.