]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - host/gf256mul.c
faster aes decryption
[avr-crypto-lib.git] / host / gf256mul.c
index 3da67cb53fc0e6a8087124dce458aa1c702ce723..d10b69cab50b173a36c7659bc2976f98bb996cf6 100644 (file)
 #include "gf256mul.h"
 
 uint8_t gf256mul(uint8_t a, uint8_t b, uint8_t reducer){
-       uint8_t t,ret=0;
-       while(a){
-               if(a&1)
-                       ret ^= b;
+       uint8_t i;
+       uint8_t p=0,t;
+       for(i=0; i<8; ++i){
+               if(b&1)
+                       p ^= a;
                t=a&0x80;
-               b<<=1;
+               a<<=1;
                if(t)
-                       b^=reducer;
-               a>>=1;
+                       a ^= reducer;
+               b>>=1;
        }
-       return ret;
+       return p;
 }