X-Git-Url: https://git.cryptolib.org/?p=avr-crypto-lib.git;a=blobdiff_plain;f=host%2Fgf256mul.c;h=d10b69cab50b173a36c7659bc2976f98bb996cf6;hp=3da67cb53fc0e6a8087124dce458aa1c702ce723;hb=8ef8dfdc7299ac1c30869ec6ad4d11276f0cf5db;hpb=bb6e6769cf20a6948e15ff43eff6d13a1cce104b diff --git a/host/gf256mul.c b/host/gf256mul.c index 3da67cb..d10b69c 100644 --- a/host/gf256mul.c +++ b/host/gf256mul.c @@ -28,15 +28,16 @@ #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; }