Je me balladais tranquille, en week end et je suis tombe sur le lien suivant:

moi>Intel AES instruction set support?! hu?! depuis quand?!?!

J'ai vite lu la doc et j'ai voulu voir si mon CPU tout recent supportais cette joyeusete, Intel file du code, mais ca compilait pas direct alors j'ai vite refait tout simple..:

#include <stdio.h>
#include <unistd.h>

int chk_cpu_aes_support() {
    unsigned int rc;
    asm ("mov $0x01, %%eax\n\t"
         "cpuid\n\t"
         "mov %%ecx, %0\n\t"
         :"=r"(rc)
         : /* no inputs */
         :"%ecx", "%eax"
        );
    return (rc & 0x2000000);
}

/* ORIGINAL INTEL CODE.
int Check_CPU_support_AES() {
#if defined(__INTEL_COMPILER)
    int CPUInfo[4] = { -1 };
    __cpuid(CPUInfo, 1);
    return (CPUInfo[2] & 0x2000000);
#else
    unsigned int a=1,b,c,d;
    __cpuid(1, a,b,c,d);
    return (c & 0x2000000);
#endif
}
*/

int main(int argc, char ** argv)
{
    fprintf(stdout, "%08x(%d)\n", chk_cpu_aes_support(), chk_cpu_aes_support());
    return 0;
}

Et tristesse...:

$ ./intelaesdetect
00000000 (0)

  • sniff*...

si qqun a un resultat "positif" n'hesitez pas a _COMMENTER_ juste que je sache quel series est capable de faire ca..