Advanced Encryption Standard (AES) library using Intel AES-NI
amiralis / libaesni Goto Github PK
View Code? Open in Web Editor NEWAdvanced Encryption Standard (AES) library using Intel AES-NI
Advanced Encryption Standard (AES) library using Intel AES-NI
Hi I was using you library. Great work!!
But i notice some strange with the CBC even when the IV param is mark as "IN" in the prototype declarations
_AES_IN UCHAR *iv
I notice that the IV value is changed after call that function.
If we dont save the IV before call the functions we are going to lose our data.
Y made this PoC to show the bug:
`int main() {
unsigned char *data,*key,*iv,*enc;
data =(unsigned char*) malloc(32);
iv = (unsigned char*) malloc(16);
key = (unsigned char*) malloc(32);
enc = (unsigned char*) malloc(32);
memset(data,'B',32); //Idont care this now
memset(key,0xF0,32); //Idont care this now
memset(iv,'A',16); //I know need to be random, but just for this example
printf("Current data: %s\n",data);
printf("Current IV: %s\n",iv);
intel_AES_enc256_CBC(data,enc,key,2, iv);
printf("Current IV: %s\n",iv); //Here BUG the current Value of IV was changed
intel_AES_dec256_CBC(enc,data,key,2, iv);
printf("Dec: %s\n",data);
}`
Greetings, I'm a game developer looking to replace the small but slow AES API of my game with something much faster. The current API takes about 3 seconds for 576 KB of data on my PC (with an i5-13500). I stumbled upon your API which looked very straightforward to use so I'm curious, how well does your API perform particularly in comparison with the one I currently use?
Kind regards.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.