blob: 252f692c45cf9d8e2ea4b74cde863992530fecd4 [file] [log] [blame]
// encrypt.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cose/cose.h>
#include <cose/cose_configure.h>
#include <cn-cbor/cn-cbor.h>
#if INCLUDE_COUNTERSIGNATURE
#include "test.h"
#include "cose_int.h"
void CounterSign_Corners()
{
HCOSE_COUNTERSIGN hCounterSign = NULL;
HCOSE_COUNTERSIGN hBadHandle = NULL;
HCOSE_COUNTERSIGN hNULL = NULL;
cose_errback cose_error;
byte rgb[10];
cn_cbor *cn = cn_cbor_int_create(5, CBOR_CONTEXT_PARAM_COMMA NULL);
hCounterSign = COSE_CounterSign_Init(CBOR_CONTEXT_PARAM_COMMA NULL);
hBadHandle = (HCOSE_COUNTERSIGN)COSE_CALLOC(1, sizeof(COSE), context);
#if INCLUDE_SIGN1
HCOSE_SIGN1 hSign1 =
COSE_Sign1_Init(0, CBOR_CONTEXT_PARAM_COMMA & cose_error);
#endif
// Look for invalid parameter
// Null handle checks
// bad handle checks
// null pointers
CHECK_FAILURE(
COSE_CounterSign_map_get_int(hNULL, 1, COSE_BOTH, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(
COSE_CounterSign_map_get_int(hNULL, 1, COSE_BOTH, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(
COSE_CounterSign_map_get_int(hCounterSign, 1, COSE_BOTH, &cose_error),
COSE_ERR_INVALID_PARAMETER, CFails++);
CHECK_FAILURE(COSE_CounterSign_map_put_int(
hNULL, 1, cn, COSE_PROTECT_ONLY, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(COSE_CounterSign_map_put_int(
hNULL, 1, cn, COSE_PROTECT_ONLY, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(COSE_CounterSign_map_put_int(
hNULL, 1, NULL, COSE_PROTECT_ONLY, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(COSE_CounterSign_map_put_int(hCounterSign, 1, cn,
COSE_PROTECT_ONLY | COSE_UNPROTECT_ONLY, &cose_error),
COSE_ERR_INVALID_PARAMETER, CFails++);
#if INCLUDE_SIGN1
CHECK_FAILURE(COSE_Sign1_add_countersignature(hSign1, hBadHandle, &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
((COSE_CounterSign *)hCounterSign)->m_next = (COSE_CounterSign *)hBadHandle;
CHECK_FAILURE(
COSE_Sign1_add_countersignature(hSign1, hCounterSign, &cose_error),
COSE_ERR_INVALID_PARAMETER, CFails++);
CHECK_FAILURE(COSE_Sign1_get_countersignature(hSign1, 3, &cose_error),
COSE_ERR_INVALID_PARAMETER, CFails++);
((COSE_CounterSign *)hCounterSign)->m_next = NULL;
COSE_Sign1_add_countersignature(hSign1, hCounterSign, &cose_error);
CHECK_FAILURE(COSE_Sign1_get_countersignature(hSign1, 3, &cose_error),
COSE_ERR_INVALID_PARAMETER, CFails++);
#endif
CHECK_FAILURE(
COSE_CounterSign_SetExternal(hNULL, rgb, sizeof(rgb), &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
CHECK_FAILURE(
COSE_CounterSign_SetExternal(hBadHandle, rgb, sizeof(rgb), &cose_error),
COSE_ERR_INVALID_HANDLE, CFails++);
COSE_CounterSign_SetExternal(hCounterSign, rgb, sizeof(rgb), &cose_error);
CHECK_RETURN(!COSE_CounterSign_Free(hBadHandle), false, CFails++);
COSE_CounterSign_Free(hCounterSign);
#if INCLUDE_SIGN1
COSE_Sign1_Free(hSign1);
#endif
}
#endif