mirror of
https://github.com/taubel/sdk-ameba-v4.0b-gcc.git
synced 2026-07-09 04:45:43 +00:00
initial commit
This commit is contained in:
commit
60a7afcc83
2528 changed files with 1001987 additions and 0 deletions
204
component/soc/realtek/8711b/fwlib/include/rtl8710b_crypto_api.h
Normal file
204
component/soc/realtek/8711b/fwlib/include/rtl8710b_crypto_api.h
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* @file rtl8710b_crypto_api_rom.h
|
||||
* @author
|
||||
* @version V1.0.0
|
||||
* @date 2016-05-17
|
||||
* @brief This file provides firmware functions to manage the following
|
||||
* functionalities of the HW crypto:
|
||||
* - Initialization
|
||||
* - MD5
|
||||
* - SHA1/SHA2
|
||||
* - HMAC
|
||||
* - AES CBC/ECB/CTR
|
||||
* - 3DES CBC/ECB
|
||||
* - DES CBC/ECB
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* This module is a confidential and proprietary property of RealTek and
|
||||
* possession or use of this module requires written permission of RealTek.
|
||||
*
|
||||
* Copyright(c) 2015, Realtek Semiconductor Corporation. All rights reserved.
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RTL8710B_CRYPTO_API_H__
|
||||
#define __RTL8710B_CRYPTO_API_H__
|
||||
|
||||
/** @addtogroup AmebaZ_Periph_Driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup CRYPTO
|
||||
* @brief CRYPTO driver modules
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup CRYPTO
|
||||
* @verbatim
|
||||
*****************************************************************************************
|
||||
* Introduction
|
||||
*****************************************************************************************
|
||||
* -Authentication or Cipher use hardware to improve data process performance
|
||||
*
|
||||
*****************************************************************************************
|
||||
* Authentication
|
||||
*****************************************************************************************
|
||||
* -MD5
|
||||
* -SHA1
|
||||
* -SHA2
|
||||
* -HMAC-MD5
|
||||
* -HMAC-SHA1
|
||||
* -HMAC-SHA2
|
||||
*
|
||||
*****************************************************************************************
|
||||
*****************************************************************************************
|
||||
* Cipher
|
||||
*****************************************************************************************
|
||||
* -AES-CBC
|
||||
* -AES-ECB
|
||||
* -AES-CTR
|
||||
* -3DES-CBC
|
||||
* -3DES-ECB
|
||||
* -DES-CBC
|
||||
* -DES-ECB
|
||||
*
|
||||
*****************************************************************************************
|
||||
* How to use
|
||||
*****************************************************************************************
|
||||
* -call rtl_cryptoEngine_init to open IPSEC function & clock
|
||||
*
|
||||
* -call following API for set key:
|
||||
* -rtl_crypto_xxx_init
|
||||
*
|
||||
* -call following API for encrypt decrypt:
|
||||
* -rtl_crypto_xxx_process or
|
||||
*
|
||||
* -rtl_crypto_xxx_encrypt
|
||||
* -rtl_crypto_xxx_decrypt
|
||||
*
|
||||
*
|
||||
*****************************************************************************************
|
||||
* @endverbatim
|
||||
*/
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
|
||||
/** @defgroup CRYPTO_Exported_Constants CRYPTO Exported Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup CRYPTO_Process_Status_definitions
|
||||
* @{
|
||||
*/
|
||||
#define _ERRNO_CRYPTO_DESC_NUM_SET_OutRange -2
|
||||
#define _ERRNO_CRYPTO_BURST_NUM_SET_OutRange -3
|
||||
#define _ERRNO_CRYPTO_NULL_POINTER -4
|
||||
#define _ERRNO_CRYPTO_ENGINE_NOT_INIT -5
|
||||
#define _ERRNO_CRYPTO_ADDR_NOT_4Byte_Aligned -6
|
||||
#define _ERRNO_CRYPTO_KEY_OutRange -7
|
||||
#define _ERRNO_CRYPTO_MSG_OutRange -8
|
||||
#define _ERRNO_CRYPTO_IV_OutRange -9
|
||||
#define _ERRNO_CRYPTO_AUTH_TYPE_NOT_MATCH -10
|
||||
#define _ERRNO_CRYPTO_CIPHER_TYPE_NOT_MATCH -11
|
||||
#define _ERRNO_CRYPTO_KEY_IV_LEN_DIFF -12
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
|
||||
/** @defgroup cryptoEngine_Exported_Functions cryptoEngine Exported Functions
|
||||
* @{
|
||||
*/
|
||||
_LONG_CALL_ int rtl_cryptoEngine_init(void);
|
||||
_LONG_CALL_ void rtl_cryptoEngine_info(void);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup Authentication_Exported_Functions Authentication Exported Functions
|
||||
* @{
|
||||
*/
|
||||
_LONG_CALL_ int rtl_crypto_md5(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_md5_init(void);
|
||||
_LONG_CALL_ int rtl_crypto_md5_process(IN const u8* message, const IN u32 msglen, OUT u8* pDigest);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_sha1(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_sha1_init(void);
|
||||
_LONG_CALL_ int rtl_crypto_sha1_process(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_sha2(IN const SHA2_TYPE sha2type, IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_sha2_init(IN const SHA2_TYPE sha2type);
|
||||
_LONG_CALL_ int rtl_crypto_sha2_process(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_hmac_md5(IN const u8* message, IN const u32 msglen, IN const u8* key, IN const u32 keylen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_md5_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_md5_process(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha1(IN const u8* message, IN const u32 msglen, IN const u8* key, IN const u32 keylen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha1_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha1_process(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha2(IN const SHA2_TYPE sha2type, IN const u8* message, IN const u32 msglen, IN const u8* key, IN const u32 keylen, OUT u8* pDigest);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha2_init(IN const SHA2_TYPE sha2type, IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_hmac_sha2_process(IN const u8* message, IN const u32 msglen, OUT u8* pDigest);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup Cipher_Exported_Functions Cipher Exported Functions
|
||||
* @{
|
||||
*/
|
||||
_LONG_CALL_ int rtl_crypto_aes_cbc_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_aes_cbc_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_aes_cbc_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_aes_ecb_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_aes_ecb_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_aes_ecb_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_aes_ctr_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_aes_ctr_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_aes_ctr_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_3des_cbc_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_3des_cbc_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_3des_cbc_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_3des_ecb_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_3des_ecb_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_3des_ecb_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_des_cbc_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_des_cbc_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_des_cbc_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
|
||||
_LONG_CALL_ int rtl_crypto_des_ecb_init(IN const u8* key, IN const u32 keylen);
|
||||
_LONG_CALL_ int rtl_crypto_des_ecb_encrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
_LONG_CALL_ int rtl_crypto_des_ecb_decrypt(IN const u8* message, IN const u32 msglen, IN const u8* iv, IN const u32 ivlen, OUT u8* pResult);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif /* __RTL8710B_CRYPTO_API_H__ */
|
||||
|
||||
/******************* (C) COPYRIGHT 2016 Realtek Semiconductor *****END OF FILE****/
|
||||
Loading…
Add table
Add a link
Reference in a new issue