Lines Matching refs:ctx
44 AES_CMAC_Init(AES_CMAC_CTX *ctx)
46 memset(ctx->X, 0, sizeof ctx->X);
47 ctx->M_n = 0;
51 AES_CMAC_SetKey(AES_CMAC_CTX *ctx, const u_int8_t key[AES_CMAC_KEY_LENGTH])
53 AES_Setkey(&ctx->aesctx, key, 16);
57 AES_CMAC_Update(AES_CMAC_CTX *ctx, const u_int8_t *data, u_int len)
61 if (ctx->M_n > 0) {
62 mlen = MIN(16 - ctx->M_n, len);
63 memcpy(ctx->M_last + ctx->M_n, data, mlen);
64 ctx->M_n += mlen;
65 if (ctx->M_n < 16 || len == mlen)
67 XOR(ctx->M_last, ctx->X);
68 AES_Encrypt(&ctx->aesctx, ctx->X, ctx->X);
73 XOR(data, ctx->X);
74 AES_Encrypt(&ctx->aesctx, ctx->X, ctx->X);
79 memcpy(ctx->M_last, data, len);
80 ctx->M_n = len;
84 AES_CMAC_Final(u_int8_t digest[AES_CMAC_DIGEST_LENGTH], AES_CMAC_CTX *ctx)
90 AES_Encrypt(&ctx->aesctx, K, K);
98 if (ctx->M_n == 16) {
100 XOR(K, ctx->M_last);
110 ctx->M_last[ctx->M_n] = 0x80;
111 while (++ctx->M_n < 16)
112 ctx->M_last[ctx->M_n] = 0;
114 XOR(K, ctx->M_last);
116 XOR(ctx->M_last, ctx->X);
117 AES_Encrypt(&ctx->aesctx, ctx->X, digest);