From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com [IPv6:2001:4860:4864:20::2b]) by sourceware.org (Postfix) with ESMTPS id DCCE03857C5D for ; Fri, 22 Jul 2022 13:00:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DCCE03857C5D Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-10d83692d5aso6251071fac.1 for ; Fri, 22 Jul 2022 06:00:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=gWIzLrwePetSY9nSbKrxlxh0eAvtz4e6CWGwF+vOmHA=; b=BE9kIpo0ktMXRn8ZzeadFW8fQdIwXjBOswrmBFoK19QdFwIAgmK0RHAvMAm3Lbpm7E R/7E6wF19v5wacrMiet1js/2NTvYf8lH6pxtTqmvY6wgdbF05uKXmyKwOwSKwnjiEyIH LzjoKTIwuf9E6O4zQyOKK3Dimo+7uoXB7jnslgeQzOM1Olj5756MS++XNMf7frggXgOP NCSa3xoc9qYYtM+53qYVu7NWqhFP08tgakAQavRul4rRXHdiW5om5XxWXgQ0nC+QLkTX tEt4Pxu0BCvoLZudZ6wZJJAS0/+QNqSaytKvsEgzyBgq8wd9q6RrYC5XWTgChgqKnw// S/tg== X-Gm-Message-State: AJIora+mhD1RnrauUCvhJXbHctDAR8BQx6zgoRE6qZ/h5pQWt1atjCha CsM7ZNmKnlOOeA3VcxKhOex+kNBhvlr2/A== X-Google-Smtp-Source: AGRyM1tdnZRwiP96GjVZSq3LSQY5L9401ZyaP1yml3mIvATbkCCW9v5UktI6xaTzdWIa5u+Dfuw/Zw== X-Received: by 2002:a05:6870:9691:b0:10d:4e09:6d0d with SMTP id o17-20020a056870969100b0010d4e096d0dmr144481oaq.54.1658494859202; Fri, 22 Jul 2022 06:00:59 -0700 (PDT) Received: from ?IPV6:2804:431:c7cb:8ded:c15d:b142:fa26:49e5? ([2804:431:c7cb:8ded:c15d:b142:fa26:49e5]) by smtp.gmail.com with ESMTPSA id b20-20020a056870471400b001048f70e03dsm2148436oaq.15.2022.07.22.06.00.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Jul 2022 06:00:55 -0700 (PDT) Message-ID: Date: Fri, 22 Jul 2022 10:00:50 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.0.3 Subject: Re: [PATCH v12 1/9] stdlib: Add arc4random, arc4random_buf, and arc4random_uniform (BZ #4417) Content-Language: en-US To: Florian Weimer Cc: libc-alpha@sourceware.org, Carlos O'Donell , Szabolcs Nagy , Yann Droneaud References: <20220722122137.3270666-1-adhemerval.zanella@linaro.org> <20220722122137.3270666-2-adhemerval.zanella@linaro.org> <87wnc5e35s.fsf@oldenburg.str.redhat.com> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: <87wnc5e35s.fsf@oldenburg.str.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2022 13:01:05 -0000 On 22/07/22 09:35, Florian Weimer wrote: > * Adhemerval Zanella: > >> diff --git a/stdlib/chacha20.c b/stdlib/chacha20.c >> new file mode 100644 >> index 0000000000..77e37655cd >> --- /dev/null >> +++ b/stdlib/chacha20.c >> @@ -0,0 +1,179 @@ > >> +static void >> +chacha20_crypt (uint32_t *state, uint8_t *dst, const uint8_t *src) >> +{ >> + size_t bytes = CHACHA20_BUFSIZE; >> + while (bytes >= CHACHA20_BLOCK_SIZE) > > That doesn't look right. No bytes variable. > > The chacha20_crypt functions should probably use arguments in the style > of > > uint8_t dst[static CHACHA20_BUFSIZE] > > for compiler size checking. Would it be acceptable? diff --git a/stdlib/chacha20.c b/stdlib/chacha20.c index 07b7b203f2..4217ecb06f 100644 --- a/stdlib/chacha20.c +++ b/stdlib/chacha20.c @@ -166,14 +166,15 @@ chacha20_block (uint32_t *state, uint8_t *dst, const uint8_t *src) static void __attribute_maybe_unused__ -chacha20_crypt_generic (uint32_t *state, uint8_t *dst, const uint8_t *src) +chacha20_crypt_generic (uint32_t *state, uint8_t dst[static CHACHA20_BUFSIZE], + const uint8_t *src) { - size_t bytes = CHACHA20_BUFSIZE; - while (bytes >= CHACHA20_BLOCK_SIZE) + size_t dstlen = CHACHA20_BUFSIZE; + while (dstlen >= CHACHA20_BLOCK_SIZE) { chacha20_block (state, dst, src); - bytes -= CHACHA20_BLOCK_SIZE; + dstlen -= CHACHA20_BLOCK_SIZE; dst += CHACHA20_BLOCK_SIZE; src += CHACHA20_BLOCK_SIZE; }