From: Martin Matuska Date: Mon, 2 Nov 2020 12:35:03 +0000 (+0100) Subject: archive_cryptor: silence Nettle 3.5+ warnings X-Git-Tag: v3.5.0~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ae4ecd57576a330cf77cf28d6b632ec6e6bf113;p=thirdparty%2Flibarchive.git archive_cryptor: silence Nettle 3.5+ warnings --- diff --git a/libarchive/archive_cryptor.c b/libarchive/archive_cryptor.c index 8ab2b0979..486e2999d 100644 --- a/libarchive/archive_cryptor.c +++ b/libarchive/archive_cryptor.c @@ -347,8 +347,35 @@ aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) static int aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) { +#if NETTLE_VERSION_MAJOR < 3 || \ + (NETTLE_VERSION_MAJOR == 3 && NETTLE_VERSION_MINOR < 5) aes_set_encrypt_key(&ctx->ctx, ctx->key_len, ctx->key); aes_encrypt(&ctx->ctx, AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce); +#else + switch(ctx->key_len) { + case 16: + aes128_set_encrypt_key((struct aes128_ctx *)&ctx->ctx.u.ctx128, + ctx->key); + aes128_encrypt((struct aes128_ctx *)&ctx->ctx.u.ctx128, + AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce); + break; + case 24: + aes192_set_encrypt_key((struct aes192_ctx *)&ctx->ctx.u.ctx192, + ctx->key); + aes192_encrypt((struct aes192_ctx *)&ctx->ctx.u.ctx192, + AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce); + break; + case 32: + aes256_set_encrypt_key((struct aes256_ctx *)&ctx->ctx.u.ctx256, + ctx->key); + aes256_encrypt((struct aes256_ctx *)&ctx->ctx.u.ctx256, + AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce); + break; + default: + return -1; + break; + } +#endif return 0; } diff --git a/libarchive/archive_cryptor_private.h b/libarchive/archive_cryptor_private.h index 64a20556a..bcd6c5839 100644 --- a/libarchive/archive_cryptor_private.h +++ b/libarchive/archive_cryptor_private.h @@ -104,6 +104,7 @@ typedef struct { #include #endif #include +#include typedef struct { struct aes_ctx ctx;