]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - bcal-cbc.c
new cfb-mode (still limited to byte operations)
[avr-crypto-lib.git] / bcal-cbc.c
index 7ae892edad821a75e21e77cfefaaaf0f0b0a6891..5e7613595041315c799ba27521a920595854911d 100644 (file)
@@ -28,7 +28,7 @@ uint8_t bcal_cbc_init(const bcdesc_t* desc, const void* key, uint16_t keysize, b
        ctx->blocksize_B = (bcal_cipher_getBlocksize_b(desc)+7)/8;
        ctx->prev_block = malloc(ctx->blocksize_B);
 
-       if(!(ctx->prev_block)){
+       if(ctx->prev_block==NULL){
                return 0x11;
        }
        return bcal_cipher_init(desc, key, keysize, &(ctx->cctx));
@@ -64,16 +64,15 @@ void bcal_cbc_decRand(void* block, const void* prev_block, bcal_cbc_ctx_t* ctx){
 
 void bcal_cbc_encMsg(const void* iv, void* msg, uint16_t msg_blocks, bcal_cbc_ctx_t* ctx){
        bcal_cbc_loadIV(iv, ctx);
-       while(msg_blocks){
+       while(msg_blocks--){
                bcal_cbc_encNext(msg, ctx);
-               msg_blocks -= 1;
                msg = (uint8_t*)msg + ctx->blocksize_B;
        }
 }
 
 void bcal_cbc_decMsg(const void* iv, void* msg, uint16_t msg_blocks, bcal_cbc_ctx_t* ctx){
        msg=(uint8_t*)msg + (msg_blocks-1)*ctx->blocksize_B;
-       while(msg_blocks>1){
+       while(msg_blocks > 1){
                bcal_cbc_decRand(msg, (uint8_t*)msg-ctx->blocksize_B, ctx);
                msg_blocks -= 1;
                msg=(uint8_t*)msg-ctx->blocksize_B;