X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fgcrypt%2Fcipher.c;h=d8e4cc5166c6f003028ed8f12e46e397e7fee8c9;hb=ef27852d0f5a5e31b21f256b3fb3074dd634b19d;hp=f8668da7a922f9764f6ea4c66c16cf8c313ca9cc;hpb=87f96aec8c48327d879c20ff2b789c88a675173d;p=tinc diff --git a/src/gcrypt/cipher.c b/src/gcrypt/cipher.c index f8668da7..d8e4cc51 100644 --- a/src/gcrypt/cipher.c +++ b/src/gcrypt/cipher.c @@ -102,7 +102,7 @@ static bool cipher_open(cipher_t *cipher, int algo, int mode) { } if((err = gcry_cipher_open(&cipher->handle, algo, mode, 0))) { - logger(DEBUG_ALWAYS, LOG_DEBUG, "Unable to intialise cipher %d mode %d: %s", algo, mode, gcry_strerror(err)); + logger(DEBUG_ALWAYS, LOG_DEBUG, "Unable to initialise cipher %d mode %d: %s", algo, mode, gcry_strerror(err)); return false; } @@ -146,10 +146,9 @@ void cipher_close(cipher_t *cipher) { cipher->handle = NULL; } - if(cipher->key) { - free(cipher->key); - cipher->key = NULL; - } + free(cipher->key); + + memset(cipher, 0, sizeof(*cipher)); } size_t cipher_keylength(const cipher_t *cipher) { @@ -263,7 +262,7 @@ bool cipher_decrypt(cipher_t *cipher, const void *indata, size_t inlen, void *ou size_t origlen = inlen - padbyte; - for(int i = inlen - 1; i >= origlen; i--) + for(size_t i = inlen - 1; i >= origlen; i--) if(((uint8_t *)outdata)[i] != padbyte) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while decrypting: invalid padding"); return false;