From b24866225a6301d3a663f874725e83c012dc25d3 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:36:00 +0100 Subject: digital/beacon: add bitcloud stack into common directory digital/zigbit --- .../include/private/sspSkkeHandler.h | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 digital/zigbit/bitcloud/stack/Components/Security/ServiceProvider/include/private/sspSkkeHandler.h (limited to 'digital/zigbit/bitcloud/stack/Components/Security/ServiceProvider/include/private/sspSkkeHandler.h') diff --git a/digital/zigbit/bitcloud/stack/Components/Security/ServiceProvider/include/private/sspSkkeHandler.h b/digital/zigbit/bitcloud/stack/Components/Security/ServiceProvider/include/private/sspSkkeHandler.h new file mode 100644 index 00000000..c9d881e0 --- /dev/null +++ b/digital/zigbit/bitcloud/stack/Components/Security/ServiceProvider/include/private/sspSkkeHandler.h @@ -0,0 +1,96 @@ +/**************************************************************************//** + \file sspSkkeHandler.h + + \brief SKKE routine handler header file. + + \author + Atmel Corporation: http://www.atmel.com \n + Support email: avr@atmel.com + + Copyright (c) 2008-2011, Atmel Corporation. All rights reserved. + Licensed under Atmel's Limited License Agreement (BitCloudTM). + + \internal + History: + 29/11/07 ALuzhetsky - Created. +******************************************************************************/ +#ifndef _SSPSKKEHANDLER_H +#define _SSPSKKEHANDLER_H + +#ifdef _LINK_SECURITY_ + +/****************************************************************************** + Includes section. +******************************************************************************/ +#include +#include +#include + +/****************************************************************************** + Types section. +******************************************************************************/ +typedef enum +{ + SKKE_STATE_IDLE, + SKKE_STATE_CALCULATE_MACTAG1, + SKKE_STATE_CALCULATE_MACTAG2, + SKKE_STATE_CALCULATE_FINAL_MACTAG1, + SKKE_STATE_CALCULATE_HASH1, + SKKE_STATE_CALCULATE_HASH2, +} SspSkkeState_t; +/****************************************************************************** + TBD +******************************************************************************/ +typedef struct +{ + SspSkkeState_t skkeState; + uint8_t macKey[SECURITY_KEY_SIZE]; + BEGIN_PACK + struct PACK + { + volatile uint8_t keyExpander[SECURITY_KEY_SIZE]; + uint8_t macData[MAX_HASH_TEXT_SIZE]; + volatile uint8_t bitsExpander[16]; + }; + END_PACK + union + { + SspKeyedHashMacReq_t keyedHashMacParam; + SspBcbHashReq_t bcbHashReqParam; + }; +} SspSkkeHandlerMem_t; + +/****************************************************************************** + Prototypes section. +******************************************************************************/ +/******************************************************************************* + Calculates parameters of Security-Key Key Esteblishment procedure. + Parameters: + none. + Return: + none. +********************************************************************************/ +void sspCalculateSkkeParamsReqHandler(void); + +/***************************************************************************\\** + \brief Copies with mirroring "length" bytes from "src" to "dst". + + \param + dst - destination memory. + src - source memory. + length - number of bytes to copy. + \return + none. +********************************************************************************/ +INLINE void mirrorMemcpy(uint8_t *dst, uint8_t *src, uint8_t length) +{ + while(length) + *(dst++) = *(src + --length); +} + +#endif // _LINK_SECURITY_ + +#endif //_SSPSKKEHANDLER_H + +// eof sspSkkeHandler.h + -- cgit v1.2.3