X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=sha256.c;h=f654968a906818d6b8e878cc0f381880b65ed68a;hb=e5a49deb52521f019e37779d6e9d81ec4f02aba4;hp=9df0f0497ae44d1d17a21b6b33dfb94e761ff4c9;hpb=17332291e15183d71d88ed868275e3cb53917180;p=avr-crypto-lib.git diff --git a/sha256.c b/sha256.c index 9df0f04..f654968 100644 --- a/sha256.c +++ b/sha256.c @@ -1,6 +1,6 @@ /* sha256.c */ /* - This file is part of the This file is part of the AVR-Crypto-Lib. + This file is part of the AVR-Crypto-Lib. Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) This program is free software: you can redistribute it and/or modify @@ -164,12 +164,12 @@ void sha256_lastBlock(sha256_ctx_t *state, const void* block, uint16_t length){ memcpy (&(lb[0]), block, length/8); /* set the final one bit */ - if (length & 0x3){ // if we have single bits at the end + if (length & 0x7){ // if we have single bits at the end lb[length/8] = ((uint8_t*)(block))[length/8]; } else { lb[length/8] = 0; } - lb[length/8] |= 0x80>>(length & 0x3); + lb[length/8] |= 0x80>>(length & 0x7); length =(length >> 3) + 1; /* from now on length contains the number of BYTES in lb*/ /* pad with zeros */ if (length>64-8){ /* not enouth space for 64bit length value */