⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crypto.c

📁 xen 3.2.2 源码
💻 C
字号:
// ===================================================================// // Copyright (c) 2005, Intel Corp.// All rights reserved.//// Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met:////   * Redistributions of source code must retain the above copyright //     notice, this list of conditions and the following disclaimer.//   * Redistributions in binary form must reproduce the above //     copyright notice, this list of conditions and the following //     disclaimer in the documentation and/or other materials provided //     with the distribution.//   * Neither the name of Intel Corporation nor the names of its //     contributors may be used to endorse or promote products derived//     from this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED// OF THE POSSIBILITY OF SUCH DAMAGE.// ===================================================================// // crypto.c// //  This file will handle all the TPM Crypto functionality// // ==================================================================#include <string.h>#include <openssl/crypto.h>#include <openssl/err.h>#include <openssl/evp.h>#include <openssl/rand.h>#include "crypto.h"#include "log.h"/** * Initialize cryptography library * @rand: random seed * @size: size of @rand */void Crypto_Init(const BYTE* rand, int size) {	ERR_load_crypto_strings();  CRYPTO_malloc_init();  OpenSSL_add_all_algorithms();  SYM_CIPHER = EVP_aes_128_cbc();  RAND_poll();  if (rand == NULL)    return;  RAND_add(rand, size, size);}/** * Shutdown cryptography library */void Crypto_Exit() {  ERR_free_strings();  ERR_remove_state(0);  EVP_cleanup();}/** * Get random data * @data: (OUT) Random data * @size: Size of @data */void Crypto_GetRandom(void* data, int size) {  int result;    result = RAND_pseudo_bytes((BYTE*) data, size);    if (result <= 0)     vtpmlogerror (VTPM_LOG_CRYPTO, "RAND_pseudo_bytes failed: %s\n",	     ERR_error_string (ERR_get_error(), NULL));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -