/**
 * @file ax_scp_private.h
 * @author NXP Semiconductors
 * @version 1.0
 * @par License
 *
 * Copyright 2016 NXP
 * SPDX-License-Identifier: Apache-2.0
 *
 * @par Description
 * This file implements the setting up of the SCP03 communication channel
 * @par History
 * 1.0   26-march-2014 : Initial version
 *
 *****************************************************************************/

#ifndef _AX_SCP_PRIVATE_H_
#define _AX_SCP_PRIVATE_H_

#include <string.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>

#include "ax_api.h"
#include "sm_apdu.h"
#include "sm_errors.h"
#include "axHostCrypto.h"
#include "ax_util.h"
#include "tst_sm_util.h"



#endif
