亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aes.c

?? reference about wireless design which is helpful to everyone
?? C
字號:
/******************************************************************************
*                                                                             *
*        **********                                                           *
*       ************                                                          *
*      ***        ***                                                         *
*     ***    ++    ***                                                        *
*     ***   +  +   ***                      CHIPCON                           *
*     ***   +                                                                 *
*     ***   +  +   ***                                                        *
*     ***    ++    ***                                                        *
*      ***        ***                                                         *
*       ************                                                          *
*        **********                                                           *
*                                                                             *
*******************************************************************************

Filename:     aes.c
Target:       cc2510
Author:       KJA
Revised:      20/6-2006
Revision:     1.0

Description:

    This application show how to use the AES (Advanced Encryption Standard) module.

    The program first encrypts a short string, and then decrypts it afterwards using
    the HAL library. Then a longer string is encrypted and decrypted using DMA.

******************************************************************************/

#include "app_ex.h"
#include "cul.h"
#include <string.h>

#define STRING_LENGTH       16
#define STRING_LENGTH_DMA 2*16

#define LENGTH_IV  16
#define LENGTH_KEY 16

void aes_main(void);

//key an initialization vector (IV)
BYTE  key[LENGTH_KEY] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x11};
BYTE  IV[LENGTH_IV ] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};


volatile BOOL dmaFinished;

void initAes(void);
void setFinished(void);
void aes(void);
void dmaAes(void);
void scrollText(char *string, UINT8 length);


/******************************************************************************
* @fn  initAes
*
* @brief
*      Initializes components for use with the AES encryption routine
*      application example (e.g. LED's, LCD, PushButton).
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void initAes(void)
{
   initLcd();

   SET_MAIN_CLOCK_SOURCE(CRYSTAL);

   INIT_BUTTON();
   INIT_GLED();
}


/******************************************************************************
* @fn  aes_main
*
* @brief
*      Main function of the AES encryption application example.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
#ifdef COMPLETE_APPLICATION
void aes_main(void){
#else
void main(void){
#endif
   initAes();

   GLED = LED_OFF;

   aes();

   dmaAes();

   haltApplicationWithLED();
   return;
}


/******************************************************************************
* @fn  aes
*
* @brief
*       This function encrypts and decrypts a string with use of the AES
*       module and the hal library
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void aes(void)
{
   char plainText[STRING_LENGTH];
   char cipherText[STRING_LENGTH];

   //clearing both strings
   memset(plainText, ' ', STRING_LENGTH);
   memset(cipherText, ' ', STRING_LENGTH);

   GLED = LED_ON;
   //Inserting, printing plaintext and waiting for input
   strcpy(plainText, (char*)"Chipcon AS");
   lcdUpdate((char*)"Plain:", plainText);
   while(getJoystickDirection() != CENTRED);
   while(getJoystickDirection() == CENTRED);


   // Setting the correct mode for AES and loading the key
   AES_SETMODE(CTR);
   halAesLoadKeyOrInitVector(key, TRUE);

   GLED = LED_OFF;


   //encrypt text and clearing plain text
   halAesEncrDecr((BYTE *)plainText, STRING_LENGTH, (BYTE *)cipherText, IV, ENCRYPT);
   memset(plainText, ' ', STRING_LENGTH);

   //printing ciphertext and waiting for user
   lcdUpdate((char*)"Cipher:", cipherText);
   while(getJoystickDirection() != CENTRED);
   while(getJoystickDirection() == CENTRED);

   GLED = LED_ON;

   //decrypt text, printing result and waiting for user
   halAesEncrDecr((BYTE *)cipherText, STRING_LENGTH, (BYTE *)plainText, IV, DECRYPT);
   lcdUpdate((char*)"Plain:", plainText);
   while(getJoystickDirection() != CENTRED);
   while(getJoystickDirection() == CENTRED);
   GLED = LED_OFF;

   return;
}


/******************************************************************************
* @fn  dmaAes
*
* @brief
*       This function encrypts and decrypts a string with use of the AES
*       module and the cul library. The function uses DMA.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void dmaAes(void)
{
   char plainText[STRING_LENGTH_DMA];
   char cipherText[STRING_LENGTH_DMA];

   UINT8 i;

   // Setting up DMA by requesting two channels
   //(one for transferring data to the AES, the other from the AES)
   DMA_DESC *dmaDescIn;
   DMA_DESC *dmaDescOut;
   UINT8 dmaDescInID;
   UINT8 dmaDescOutID;
   culDmaInit();
   dmaDescIn = culDmaAllocChannel(&dmaDescInID, setFinished);
   dmaDescOut = culDmaAllocChannel(&dmaDescOutID, setFinished);


   // clear text
   memset(plainText, ' ', STRING_LENGTH_DMA);
   memset(cipherText, ' ', STRING_LENGTH_DMA);

   GLED = LED_ON;

   // init with plain text, printing text and waiting
   strcpy(plainText, (char*)"The world is going wireless!!!");
   scrollText(plainText, STRING_LENGTH_DMA);
   while(getJoystickDirection() != CENTRED);
   while(getJoystickDirection() == CENTRED);


   // enable interupt from DMA and loading Initialisation Vector using DMA
   INT_ENABLE(INUM_DMA, INT_ON);
   INT_GLOBAL_ENABLE(INT_ON);
   culDmaToAes(dmaDescIn, (BYTE __xdata*)IV, LENGTH_IV, TRUE);
   DMA_ARM_CHANNEL(dmaDescInID);
   AES_SET_ENCR_DECR_KEY_IV(AES_LOAD_IV);
   AES_START();
   dmaFinished = FALSE;
   while (!dmaFinished);


   // Encrypting text. Setting up 2 DMA channels and starting transfer
   // Waiting until finished
   culDmaToAes(dmaDescIn, (BYTE __xdata*)plainText, STRING_LENGTH_DMA, FALSE);
   culDmaFromAes(dmaDescOut, (BYTE __xdata*)cipherText, STRING_LENGTH_DMA, TRUE);
   AES_SET_ENCR_DECR_KEY_IV(AES_ENCRYPT);
   DMA_ARM_CHANNEL(dmaDescInID);
   DMA_ARM_CHANNEL(dmaDescOutID);

   for(i = 0; i < STRING_LENGTH_DMA / 16; i++){
      while (! (ENCCS & 0x08)); //wait for AES ready
      AES_START();
   }

   dmaFinished = FALSE;
   while (!dmaFinished);

   GLED = LED_OFF;


   // clearing plain text
   memset(plainText, ' ', STRING_LENGTH_DMA);

   // Printing cipher text
   lcdUpdate((char*)"Cipher:", cipherText);
   scrollText(cipherText, STRING_LENGTH_DMA);
   while(getJoystickDirection() != CENTRED);
   while(getJoystickDirection() == CENTRED);


   // setup for encryption
   // load IV. Waiting until finished.
   GLED = LED_ON;
   culDmaToAes(dmaDescIn, (BYTE __xdata*)IV  , LENGTH_IV, TRUE);
   DMA_ARM_CHANNEL(dmaDescInID);
   AES_SET_ENCR_DECR_KEY_IV(AES_LOAD_IV);
   AES_START();
   dmaFinished = FALSE;
   while (!dmaFinished);



   // Decrypting text. Waiting until finished.
   culDmaToAes(dmaDescIn, (BYTE __xdata*)cipherText, STRING_LENGTH_DMA, FALSE);
   culDmaFromAes(dmaDescOut, (BYTE __xdata*)plainText, STRING_LENGTH_DMA, TRUE);
   AES_SET_ENCR_DECR_KEY_IV(AES_ENCRYPT);
   DMA_ARM_CHANNEL(dmaDescInID);
   DMA_ARM_CHANNEL(dmaDescOutID);

   for(i = 0; i < STRING_LENGTH_DMA / 16; i++){
      while (! (ENCCS & 0x08)); // wait for AES ready
      AES_START();
   }
   dmaFinished = FALSE;
   while (!dmaFinished);

   GLED = LED_ON;

   //Printing decrypted text
   lcdUpdate((char*)"Plain:", plainText);
   scrollText(plainText, STRING_LENGTH_DMA);
}


/******************************************************************************
* @fn  setFinished
*
* @brief
*       DMA callback routine.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void setFinished(void)
{
   dmaFinished = TRUE;
}

/******************************************************************************
* @fn  aes_init
*
* @brief
*       Initializes the AES encryption application example.
*
* Parameters:
*
* @param  APPLICATION *a
*         Main application
*
* @return void
*
******************************************************************************/
#ifdef COMPLETE_APPLICATION
void aes_init(APPLICATION *a){
   a->menuText = (char*)"AES (Crypto)";
   a->description = (char*)"Enc./decr.";
   a->main_func = aes_main;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费午夜影院| 欧美一级二级在线观看| 国产精品一区不卡| 紧缚奴在线一区二区三区| 亚洲成精国产精品女| 亚洲一区二区中文在线| 日韩一区中文字幕| 一区二区三区.www| 一区二区三区在线观看动漫| 亚洲尤物在线视频观看| 日韩一区精品字幕| 麻豆成人久久精品二区三区红| 蜜桃视频在线观看一区| 激情深爱一区二区| 成人免费毛片嘿嘿连载视频| 99精品热视频| 欧美日韩国产在线观看| 欧美日韩中文字幕一区二区| jlzzjlzz欧美大全| eeuss国产一区二区三区| 一本一道久久a久久精品综合蜜臀| 一本色道久久加勒比精品| 91国偷自产一区二区开放时间| 91蝌蚪porny| 日韩一区二区三区av| 久久亚洲二区三区| 一区二区三区四区五区视频在线观看 | 日本大香伊一区二区三区| 欧美日韩成人综合在线一区二区| 精品国产三级电影在线观看| 国产午夜精品一区二区三区视频| 综合久久国产九一剧情麻豆| 日韩高清电影一区| 国产成人免费视频| 欧美日韩中文另类| 国产亚洲欧美激情| 天天色 色综合| 成人国产视频在线观看| 在线电影一区二区三区| 国产亲近乱来精品视频| 天天射综合影视| 成人h版在线观看| 日韩精品一区在线| 亚洲欧美成人一区二区三区| 国产一区在线观看麻豆| 欧美精品日韩精品| 《视频一区视频二区| 精品一区二区精品| 欧美中文字幕一二三区视频| 国产欧美日产一区| 国产精品99久久久久久宅男| 欧美视频一区二区三区在线观看| 国产欧美一区二区精品忘忧草| 日韩高清电影一区| 在线观看91视频| 中文字幕综合网| 国产成人日日夜夜| 精品动漫一区二区三区在线观看| 亚洲二区在线视频| 91亚洲午夜精品久久久久久| 国产欧美一区二区精品忘忧草 | 欧美日韩亚洲丝袜制服| 中文字幕亚洲精品在线观看| 国产伦精品一区二区三区视频青涩 | 99久久精品免费看| 欧美经典三级视频一区二区三区| 久久99精品国产麻豆不卡| 7777精品伊人久久久大香线蕉 | 亚洲一区免费观看| 色综合久久天天| 综合久久给合久久狠狠狠97色| 国产成人亚洲精品狼色在线| 久久九九99视频| 国产精品一区二区黑丝| 国产三级一区二区三区| 国模无码大尺度一区二区三区| 精品噜噜噜噜久久久久久久久试看| 日本在线不卡视频| 3d动漫精品啪啪1区2区免费 | 国产精品美女久久久久久久久| 国产成人自拍在线| 国产婷婷色一区二区三区四区| 成人午夜在线免费| 国产精品第四页| 日本乱人伦aⅴ精品| 亚洲国产一区在线观看| 欧美军同video69gay| 日本怡春院一区二区| 欧美精品一区视频| 成人午夜在线免费| 亚洲制服丝袜一区| 日韩一区二区免费在线电影| 裸体一区二区三区| 国产日韩精品一区二区浪潮av| 成人黄色软件下载| 一区二区三区四区乱视频| 国产日韩影视精品| 99久久99久久久精品齐齐| 亚洲福中文字幕伊人影院| 欧美一区二区三区啪啪| 韩国av一区二区三区在线观看| 国产精品久久久久久久久免费桃花 | 国产乱码精品一区二区三区忘忧草| 日本一区二区三区久久久久久久久不 | 欧美一区二区在线播放| 精品一区二区三区不卡| 国产精品久久久久三级| 欧美日韩一区二区电影| 狠狠色丁香婷综合久久| 亚洲人成小说网站色在线 | 国产盗摄一区二区| 亚洲精品国产品国语在线app| 欧美一级淫片007| av网站一区二区三区| 天堂影院一区二区| 亚洲国产精品成人综合色在线婷婷| 日本丰满少妇一区二区三区| 久久精品99久久久| 亚洲美女精品一区| 2020国产精品久久精品美国| 色婷婷av一区二区三区gif| 麻豆精品久久精品色综合| 亚洲另类在线视频| 国产三级精品三级在线专区| 欧美乱熟臀69xxxxxx| av在线不卡网| 国内不卡的二区三区中文字幕 | 日韩女同互慰一区二区| 91免费看`日韩一区二区| 国内精品视频一区二区三区八戒 | 免费在线一区观看| 亚洲视频小说图片| 国产欧美日韩视频在线观看| 日韩免费一区二区三区在线播放| 91福利在线播放| 成人免费观看av| 国产乱码精品一品二品| 久久国产免费看| 天堂影院一区二区| 午夜影院在线观看欧美| 亚洲精品中文在线| 国产精品国产三级国产aⅴ原创| 精品999久久久| 欧美电影免费观看高清完整版| 欧美日韩三级视频| 日本国产一区二区| 91成人网在线| 91久久人澡人人添人人爽欧美 | av动漫一区二区| 高清久久久久久| 成人一级片网址| 粉嫩13p一区二区三区| 成人午夜看片网址| 国产91综合一区在线观看| 国产一区二区在线看| 精品无人码麻豆乱码1区2区| 久草在线在线精品观看| 麻豆91精品91久久久的内涵| 蜜臀av亚洲一区中文字幕| 久久9热精品视频| 激情综合一区二区三区| 国产精品中文字幕欧美| 波多野结衣精品在线| 91免费精品国自产拍在线不卡| 欧美性一二三区| 欧美性欧美巨大黑白大战| 欧美卡1卡2卡| 欧美精品一区二区不卡| 国产精品天干天干在观线| 亚洲视频一区二区在线观看| 亚洲一二三四久久| 麻豆一区二区99久久久久| 国产精品综合网| 色综合久久中文综合久久97| 欧美日韩国产综合久久| 日韩欧美精品三级| 国产精品三级av在线播放| 亚洲六月丁香色婷婷综合久久| 日本一道高清亚洲日美韩| 国内精品伊人久久久久av一坑 | 亚洲女与黑人做爰| 日本在线不卡一区| 国产成人精品综合在线观看 | 欧美变态tickle挠乳网站| 国产偷国产偷精品高清尤物| 亚洲一区二区视频| 国精品**一区二区三区在线蜜桃| 成人性视频免费网站| 欧美高清激情brazzers| 国产亚洲成av人在线观看导航| 亚洲日本在线看| 日本aⅴ精品一区二区三区| 99精品黄色片免费大全| 欧美v国产在线一区二区三区| 中文字幕一区二区不卡| 麻豆久久久久久| 欧洲一区二区三区在线| 亚洲国产精品精华液ab| 美国精品在线观看| 在线亚洲高清视频|