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

📄 aes.h

📁 aesutil是一个小型的库和命令行程序
💻 H
字号:
/* ------------------------------------------------------------------------- Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK. All rights reserved. TERMS Redistribution and use in source and binary forms, with or without  modification, are permitted subject to the following conditions:  1. Redistributions of source code must retain the above copyright      notice, this list of conditions and the following disclaimer.   2. 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.   3. The copyright holder's name must not be used to endorse or promote      any products derived from this software without his specific prior      written permission.  This software is provided 'as is' with no express or implied warranties  of correctness or fitness for purpose. ------------------------------------------------------------------------- Issue Date: 21/01/2002 This file contains the definitions required to use AES (Rijndael) in C.*/#ifndef _AES_H#define _AES_H#include "uitypes.h"/*  BLOCK_SIZE is in BYTES: 16, 24, 32 or undefined for aes.c and 16, 20, 24, 28,     32 or undefined for aespp.c.  If left undefined a  slower version providing     variable block length is compiled    */#define BLOCK_SIZE  16/* key schedule length (in 32-bit words)    */#if !defined(BLOCK_SIZE)#define KS_LENGTH   128#else#define KS_LENGTH   4 * BLOCK_SIZE#endif#if defined(__cplusplus)extern "C"{#endiftypedef uint16_t    aes_fret;   /* type for function return value       */#define aes_bad     0           /* bad function return value            */#define aes_good    1           /* good function return value           */#ifndef AES_DLL                 /* implement normal or DLL functions    */#define aes_rval    aes_fret#else#define aes_rval    aes_fret __declspec(dllexport) _stdcall#endiftypedef struct                      /* the AES context for encryption   */{   uint32_t    k_sch[KS_LENGTH];   /* the encryption key schedule      */    uint32_t    n_rnd;              /* the number of cipher rounds      */    uint32_t    n_blk;              /* the number of bytes in the state */} aes_ctx;aes_rval aes_blk_len(unsigned int blen, aes_ctx cx[1]);aes_rval aes_enc_key(const unsigned char in_key[], unsigned int klen, aes_ctx cx[1]);aes_rval aes_enc_blk(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1]);aes_rval aes_dec_key(const unsigned char in_key[], unsigned int klen, aes_ctx cx[1]);aes_rval aes_dec_blk(const unsigned char in_blk[], unsigned char out_blk[], const aes_ctx cx[1]);#if defined(__cplusplus)}#endif#endif

⌨️ 快捷键说明

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