Add support for key inversion using AES-NI
diff --git a/library/aes.c b/library/aes.c
index d2d1c0c..4477084 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -591,6 +591,15 @@
     if( ret != 0 )
         return( ret );
 
+#if defined(POLARSSL_AESNI_C) && defined(POLARSSL_HAVE_X86_64)
+    if( aesni_supports( POLARSSL_AESNI_AES ) )
+    {
+        aesni_inverse_key( (unsigned char *) ctx->rk,
+                           (const unsigned char *) cty.rk, ctx->nr );
+        goto done;
+    }
+#endif
+
     SK = cty.rk + cty.nr * 4;
 
     *RK++ = *SK++;
@@ -614,6 +623,7 @@
     *RK++ = *SK++;
     *RK++ = *SK++;
 
+done:
     memset( &cty, 0, sizeof( aes_context ) );
 
     return( 0 );