函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\crypto\aes.c Create Date:2022-07-27 07:41:26
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:aes_encrypt - Encrypt a single AES block*@ctx: Context struct containing the key schedule*@out: Buffer to store the ciphertext*@in: Buffer containing the plaintext

函数原型:void aes_encrypt(const struct crypto_aes_ctx *ctx, u8 *out, const u8 *in)

返回类型:void

参数:

类型参数名称
const struct crypto_aes_ctx *ctx
u8 *out
const u8 *in
260  rkp等于key_enc加4
261  rounds等于6加key_length除4
262  u32 st0[4], st1[4]
265  st0[0]等于key_enc[0]按位异或get_unaligned_le32(in)
266  st0[1]等于key_enc[1]按位异或get_unaligned_le32(in + 4)
267  st0[2]等于key_enc[2]按位异或get_unaligned_le32(in + 8)
268  st0[3]等于key_enc[3]按位异或get_unaligned_le32(in + 12)
276  st0[0]异或等于Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[0]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[64]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[134]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[195]
277  st0[1]异或等于Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[16]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[82]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[158]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[221]
278  st0[2]异或等于Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[32]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[96]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[160]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[234]
279  st0[3]异或等于Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[48]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[112]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[186]按位异或Emit the sbox as volatile const to prevent the compiler from doing* constant folding on sbox references involving fixed indexes.[241]
281  循环
282  st1[0]等于mix_columns(subshift(st0, 0))按位异或rkp[0]
283  st1[1]等于mix_columns(subshift(st0, 1))按位异或rkp[1]
284  st1[2]等于mix_columns(subshift(st0, 2))按位异或rkp[2]
285  st1[3]等于mix_columns(subshift(st0, 3))按位异或rkp[3]
287  如果round恒等于rounds减2则退出
290  st0[0]等于mix_columns(subshift(st1, 0))按位异或rkp[4]
291  st0[1]等于mix_columns(subshift(st1, 1))按位异或rkp[5]
292  st0[2]等于mix_columns(subshift(st1, 2))按位异或rkp[6]
293  st0[3]等于mix_columns(subshift(st1, 3))按位异或rkp[7]
296  put_unaligned_le32(subshift(st1, 0) ^ rkp[4], out)
297  put_unaligned_le32(subshift(st1, 1) ^ rkp[5], out + 4)
298  put_unaligned_le32(subshift(st1, 2) ^ rkp[6], out + 8)
299  put_unaligned_le32(subshift(st1, 3) ^ rkp[7], out + 12)