【发布时间】:2014-06-10 09:29:51
【问题描述】:
我目前在与一个对我个人而言非常复杂的结构进行了很多斗争
struct crypto_tfm
{
uint32_t crt_flags;
union
{
struct ablkcipher_tfm ablkcipher;
struct aead_tfm aead;
struct blkcipher_tfm blkcipher;
struct cipher_tfm cipher;
struct hash_tfm hash;
struct compress_tfm compress;
struct rng_tfm rng;
} crt_u;
void (*exit)(struct crypto_tfm *tfm);
struct crypto_alg *crt_alg;
void *crt_ctx[] CRYPTO_MINALIGN_ATTR;
};
我完全不知道如何使用这个结构。所以基本上我完全迷失了这个
使用它的函数需要一个结构crypto_tfm *tfm
第一个想法如下:
struct crypto_tfm *new_tfm()
{
struct crypto_tfm *tfm = malloc(sizeof(struct crypto_tfm));
tfm -> crt_flags = 0;
tfm -> crt_u.
}
但我不知道如何走得更远,
联合中的给定结构也在使用另一个结构。现在对我来说有点太复杂了
【问题讨论】:
-
更多细节?例如你不明白的等等。
-
你可以点赞
tfm -> crt_u.ablkcipher,tfm -> crt_u.aead..等 -
联合内的结构内的整个结构。这让我很困惑。以及如何使 struct crypto_tfm *tfm 将其传递给使用它的函数
-
只需在结构的基本初始化后将
tfm传递给您的函数,并像struct crypto_tfm *rec_tfm这样接收方。