当前位置: 首页 > news >正文

电商网站建设模板个人免费发布招聘信息

电商网站建设模板,个人免费发布招聘信息,外贸流程英文,购物网站补货提醒软件怎么做文章目录 openssl3.2 - 官方demo学习 - mac - siphash.c概述笔记END openssl3.2 - 官方demo学习 - mac - siphash.c 概述 MAC算法为 SIPHASH, 设置参数(C-rounds, D-rounds, 也可以不设置, 有默认值) 用key初始化MAC算法, 算明文的MAC值 笔记 /*! \file siphash.c \note op…

文章目录

    • openssl3.2 - 官方demo学习 - mac - siphash.c
    • 概述
    • 笔记
    • END

openssl3.2 - 官方demo学习 - mac - siphash.c

概述

MAC算法为 SIPHASH, 设置参数(C-rounds, D-rounds, 也可以不设置, 有默认值)
用key初始化MAC算法, 算明文的MAC值

笔记

/*!
\file siphash.c
\note
openssl3.2 - 官方demo学习 - mac - siphash.c
MAC算法为 SIPHASH, 设置参数(C-rounds, D-rounds, 也可以不设置, 有默认值)
用key初始化MAC算法, 算明文的MAC值
*//** Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved.** Licensed under the Apache License 2.0 (the "License").  You may not use* this file except in compliance with the License.  You can obtain a copy* in the file LICENSE in the source distribution or at* https://www.openssl.org/source/license.html*/#include <stdio.h>
#include <stdlib.h>
#include <openssl/core_names.h>
#include <openssl/evp.h>
#include <openssl/params.h>
#include <openssl/err.h>#include "my_openSSL_lib.h"/** Taken from the test vector from the paper "SipHash: a fast short-input PRF".* https://www.aumasson.jp/siphash/siphash.pdf*//** Hard coding the key into an application is very bad.* It is done here solely for educational purposes.*/
static unsigned char key[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
};static unsigned char data[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e
};static const unsigned char expected_output[] = {0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1
};/** A property query used for selecting the SIPHASH implementation.*/
static char* propq = NULL;int main(int argc, char** argv)
{int ret = EXIT_FAILURE;EVP_MAC* _evp_mac = NULL;EVP_MAC_CTX* _evp_mac_ctx = NULL;unsigned char out[8];OSSL_PARAM params[4], * p = params;OSSL_LIB_CTX* _ossl_lib_ctx = NULL;unsigned int digest_len = 8, c_rounds = 2, d_rounds = 4;size_t out_len = 0;_ossl_lib_ctx = OSSL_LIB_CTX_new();if (_ossl_lib_ctx == NULL) {fprintf(stderr, "OSSL_LIB_CTX_new() returned NULL\n");goto end;}/* Fetch the SipHash implementation */_evp_mac = EVP_MAC_fetch(_ossl_lib_ctx, "SIPHASH", propq);if (_evp_mac == NULL) {fprintf(stderr, "EVP_MAC_fetch() returned NULL\n");goto end;}/* Create a context for the SipHash operation */_evp_mac_ctx = EVP_MAC_CTX_new(_evp_mac);if (_evp_mac_ctx == NULL) {fprintf(stderr, "EVP_MAC_CTX_new() returned NULL\n");goto end;}/* SipHash can support either 8 or 16-byte digests. */*p++ = OSSL_PARAM_construct_uint(OSSL_MAC_PARAM_SIZE, &digest_len);/** The number of C-rounds and D-rounds is configurable. Standard SipHash* uses values of 2 and 4 respectively. The following lines are unnecessary* as they set the default, but demonstrate how to change these values.*/*p++ = OSSL_PARAM_construct_uint(OSSL_MAC_PARAM_C_ROUNDS, &c_rounds);*p++ = OSSL_PARAM_construct_uint(OSSL_MAC_PARAM_D_ROUNDS, &d_rounds);*p = OSSL_PARAM_construct_end();/* Initialise the SIPHASH operation */if (!EVP_MAC_init(_evp_mac_ctx, key, sizeof(key), params)) {fprintf(stderr, "EVP_MAC_init() failed\n");goto end;}/* Make one or more calls to process the data to be authenticated */if (!EVP_MAC_update(_evp_mac_ctx, data, sizeof(data))) {fprintf(stderr, "EVP_MAC_update() failed\n");goto end;}/* Make one call to the final to get the MAC */if (!EVP_MAC_final(_evp_mac_ctx, out, &out_len, sizeof(out))) {fprintf(stderr, "EVP_MAC_final() failed\n");goto end;}printf("Generated MAC:\n");BIO_dump_indent_fp(stdout, out, (int)out_len, 2);putchar('\n');if (out_len != sizeof(expected_output)) {fprintf(stderr, "Generated MAC has an unexpected length\n");goto end;}if (CRYPTO_memcmp(expected_output, out, sizeof(expected_output)) != 0) {fprintf(stderr, "Generated MAC does not match expected value\n");goto end;}ret = EXIT_SUCCESS;
end:EVP_MAC_CTX_free(_evp_mac_ctx);EVP_MAC_free(_evp_mac);OSSL_LIB_CTX_free(_ossl_lib_ctx);if (ret != EXIT_SUCCESS)ERR_print_errors_fp(stderr);return ret;
}

END

http://www.yayakq.cn/news/347841/

相关文章:

  • 国际旅游网站设计报告dede网站如何换logo
  • php网站源码免费下载手机网站制作服务机构
  • 关于营销方面的网站创建免费论坛的10个网站
  • 网站开发 创造收益网络工程师前景如何
  • 制作微信网站wordpress更改固定连接
  • 稳定的网站制作需要多少钱酒店和网站对接如何做
  • 企业网站运营外包费用宝安中心医院口腔科
  • 炫酷的移动端网站设计我的世界有什么做的视频网站
  • 商务网站建设与维护(专21春)wordpress按标签筛选
  • 业务员自己掏钱做网站可以吗做外贸用什么服务网站
  • 自助建站系统源码 资源网塑料袋销售做哪个网站推广好
  • 陕西省私募基金协会seo网站推广专员
  • 金诚信矿业建设集团有限公司网站wordpress如何导出主题
  • 建网站 温州设计网站建设常州
  • 班级空间网站建设作用网络营销相关工作岗位
  • 海南网站备案网站大连
  • 南京seo网站排名优化网站系统设计方案
  • wordpress哪一年开始北京网络优化公司
  • 网站开发项目实例网站死链接检查
  • 重庆万州网站建设费用wordpress 分页链接
  • 云南网站建设公司安装和使用wordpress
  • 国外网站如何建设零基础怎么学平面设计
  • 购物网站建设包括哪些堆广自己的业务怎么管理网站
  • 3模网站建设网站的规划与创建
  • 千岛湖建设集团网站wordpress 去掉分类
  • 搜索网站排名优化斗鱼类的直播网站开发
  • 怎么查看什么公司做的网站吗电话营销技巧和营销方法
  • 南昌网站公司深圳网络优化
  • vue做购物网站gif放网站有锯齿
  • 网站开发区下载个人简历直接填写