您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HASH_DataIn函数代码示例

51自学网 2021-06-01 21:22:24
  C++
这篇教程C++ HASH_DataIn函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HASH_DataIn函数的典型用法代码示例。如果您正苦于以下问题:C++ HASH_DataIn函数的具体用法?C++ HASH_DataIn怎么用?C++ HASH_DataIn使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HASH_DataIn函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Md5Final

    void Md5Final(Md5* md5, byte* hash)    {        __IO uint16_t nbvalidbitsdata = 0;        /* finish reading any trailing bytes into FIFO */        if (md5->buffLen > 0) {            HASH_DataIn(*(uint32_t*)md5->buffer);            md5->loLen += md5->buffLen;        }        /* calculate number of valid bits in last word of input data */        nbvalidbitsdata = 8 * (md5->loLen % MD5_REG_SIZE);        /* configure number of valid bits in last word of the data */        HASH_SetLastWordValidBitsNbr(nbvalidbitsdata);        /* start HASH processor */        HASH_StartDigest();        /* wait until Busy flag == RESET */        while (HASH_GetFlagStatus(HASH_FLAG_BUSY) != RESET) {}                /* read message digest */        md5->digest[0] = HASH->HR[0];        md5->digest[1] = HASH->HR[1];        md5->digest[2] = HASH->HR[2];        md5->digest[3] = HASH->HR[3];        ByteReverseWords(md5->digest, md5->digest, MD5_DIGEST_SIZE);        XMEMCPY(hash, md5->digest, MD5_DIGEST_SIZE);        InitMd5(md5);  /* reset state */    }
开发者ID:Coderz333,项目名称:cyassl,代码行数:34,


示例2: HASH_SHA1

/** * @brief  Compute the HASH SHA1 digest. * @param  Input: pointer to the Input buffer to be treated. * @param  Ilen: length of the Input buffer. * @param  Output: the returned digest * @retval An ErrorStatus enumeration value: *          - SUCCESS: digest computation done *          - ERROR: digest computation failed */ErrorStatus HASH_SHA1(uint8_t *Input, uint32_t Ilen, uint8_t Output[20]) {    HASH_InitTypeDef SHA1_HASH_InitStructure;    HASH_MsgDigest SHA1_MessageDigest;    __IO uint16_t nbvalidbitsdata = 0;    uint32_t i = 0;    __IO uint32_t counter = 0;    uint32_t busystatus = 0;    ErrorStatus status = SUCCESS;    uint32_t inputaddr = (uint32_t) Input;    uint32_t outputaddr = (uint32_t) Output;    /* Number of valid bits in last word of the Input data */    nbvalidbitsdata = 8 * (Ilen % 4);    /* HASH peripheral initialization */    HASH_DeInit();    /* HASH Configuration */    SHA1_HASH_InitStructure.HASH_AlgoSelection = HASH_AlgoSelection_SHA1;    SHA1_HASH_InitStructure.HASH_AlgoMode = HASH_AlgoMode_HASH;    SHA1_HASH_InitStructure.HASH_DataType = HASH_DataType_8b;    HASH_Init(&SHA1_HASH_InitStructure);    /* Configure the number of valid bits in last word of the data */    HASH_SetLastWordValidBitsNbr(nbvalidbitsdata);    /* Write the Input block in the IN FIFO */    for (i = 0; i < Ilen; i += 4) {        HASH_DataIn(*(uint32_t*) inputaddr);        inputaddr += 4;    }    /* Start the HASH processor */    HASH_StartDigest();    /* wait until the Busy flag is RESET */    do {        busystatus = HASH_GetFlagStatus(HASH_FLAG_BUSY);        counter++;    } while ((counter != SHA1BUSY_TIMEOUT) && (busystatus != RESET));    if (busystatus != RESET) {        status = ERROR;    } else {        /* Read the message digest */        HASH_GetDigest(&SHA1_MessageDigest);        *(uint32_t*) (outputaddr) = __REV(SHA1_MessageDigest.Data[0]);        outputaddr += 4;        *(uint32_t*) (outputaddr) = __REV(SHA1_MessageDigest.Data[1]);        outputaddr += 4;        *(uint32_t*) (outputaddr) = __REV(SHA1_MessageDigest.Data[2]);        outputaddr += 4;        *(uint32_t*) (outputaddr) = __REV(SHA1_MessageDigest.Data[3]);        outputaddr += 4;        *(uint32_t*) (outputaddr) = __REV(SHA1_MessageDigest.Data[4]);    }    return status;}
开发者ID:emkaychen,项目名称:bachelorthesis,代码行数:67,


示例3: HMAC_MD5

/**  * @brief  Compute the HMAC MD5 digest.  * @param  Key: pointer to the Key used for HMAC.  * @param  Keylen: length of the Key used for HMAC.  * @param  Input: pointer to the Input buffer to be treated.  * @param  Ilen: length of the Input buffer.  * @param  Output: the returned digest    * @retval An ErrorStatus enumeration value:  *          - SUCCESS: digest computation done  *          - ERROR: digest computation failed  */ErrorStatus HMAC_MD5(uint8_t *Key, uint32_t Keylen, uint8_t *Input,                      uint32_t Ilen, uint8_t Output[16]){  HASH_InitTypeDef MD5_HASH_InitStructure;  HASH_MsgDigest MD5_MessageDigest;  __IO uint16_t nbvalidbitsdata = 0;  __IO uint16_t nbvalidbitskey = 0;  uint32_t i = 0;  __IO uint32_t counter = 0;  uint32_t busystatus = 0;  ErrorStatus status = SUCCESS;  uint32_t keyaddr    = (uint32_t)Key;  uint32_t inputaddr  = (uint32_t)Input;  uint32_t outputaddr = (uint32_t)Output;  /* Number of valid bits in last word of the Input data */  nbvalidbitsdata = 8 * (Ilen % 4);  /* Number of valid bits in last word of the Key */  nbvalidbitskey = 8 * (Keylen % 4);     /* HASH peripheral initialization */  HASH_DeInit();  /* HASH Configuration */  MD5_HASH_InitStructure.HASH_AlgoSelection = HASH_AlgoSelection_MD5;  MD5_HASH_InitStructure.HASH_AlgoMode = HASH_AlgoMode_HMAC;  MD5_HASH_InitStructure.HASH_DataType = HASH_DataType_8b;  if(Keylen > 64)  {    /* HMAC long Key */    MD5_HASH_InitStructure.HASH_HMACKeyType = HASH_HMACKeyType_LongKey;  }  else  {    /* HMAC short Key */    MD5_HASH_InitStructure.HASH_HMACKeyType = HASH_HMACKeyType_ShortKey;  }  HASH_Init(&MD5_HASH_InitStructure);  /* Configure the number of valid bits in last word of the Key */  HASH_SetLastWordValidBitsNbr(nbvalidbitskey);  /* Write the Key */  for(i=0; i<Keylen; i+=4)  {    HASH_DataIn(*(uint32_t*)keyaddr);    keyaddr+=4;  }    /* Start the HASH processor */  HASH_StartDigest();  /* wait until the Busy flag is RESET */  do  {    busystatus = HASH_GetFlagStatus(HASH_FLAG_BUSY);    counter++;  }while ((counter != MD5BUSY_TIMEOUT) && (busystatus != RESET));  if (busystatus != RESET)  {     status = ERROR;  }  else  {    /* Configure the number of valid bits in last word of the Input data */    HASH_SetLastWordValidBitsNbr(nbvalidbitsdata);    /* Write the Input block in the IN FIFO */    for(i=0; i<Ilen; i+=4)    {      HASH_DataIn(*(uint32_t*)inputaddr);      inputaddr+=4;    }    /* Start the HASH processor */    HASH_StartDigest();    /* wait until the Busy flag is RESET */    counter =0;    do    {       busystatus = HASH_GetFlagStatus(HASH_FLAG_BUSY);       counter++;    }while ((counter != MD5BUSY_TIMEOUT) && (busystatus != RESET));    if (busystatus != RESET)    {//.........这里部分代码省略.........
开发者ID:MaJerle,项目名称:stm32f429,代码行数:101,



注:本文中的HASH_DataIn函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HASH_FIND函数代码示例
C++ HASH_DEL函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。