Esta documentación está archivada y no tiene mantenimiento.


Visual Studio 2010

Microsoft Specific

Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. This instruction generates a round key for AES encryption.

__m128i _mm_aeskeygenassist_si128(
   __m128i ckey,
   const int rcon



[in] ckey

128 bits of data that is used to generate the AES encryption key.

[in] rcon

A round constant used to generate the AES encryption key.

The AES encryption key.




x86, x64

Header file <wmmintrin.h>

AES encryption requires 10 iterations of encryption with a 128 bit round key. Each round of encryption requires a different key. This instruction helps generate the round keys. The round keys can be generated independently of the encryption phase.

The rcon parameter is not just the round of encryption. It is a constant that helps generate a round key.

#include <wmmintrin.h>
#include <stdio.h>

int main()
    __m128i a;
    a.m128i_u64[1] = 0x8899AABBCCDDEEFF;
    a.m128i_u64[0] = 0x0123456789ABCDEF;

    const int round = 5;

    __m128i key = _mm_aeskeygenassist_si128( a, round );

    printf_s("Key value: 0x%016I64x%016I64x\n",
                key.m128i_u64[1], key.m128i_u64[0]);

    return 0;
Key value: 0xeac4eea9c4eeacea857c266b7c266e85