[PATCH v3 4/5] powerpc/vdso: Wire up getrandom() vDSO implementation on PPC32

Christophe Leroy christophe.leroy at csgroup.eu
Sat Aug 31 03:23:18 AEST 2024



Le 30/08/2024 à 18:42, Christophe Leroy a écrit :
> 
> 
> Le 30/08/2024 à 18:14, Jason A. Donenfeld a écrit :
>> On Fri, Aug 30, 2024 at 05:57:08PM +0200, Christophe Leroy wrote:
>>> + *    r5: 8-byte counter input/output (saved on stack)
>>> + *
>>> + *    r14-r15: counter
>>> + */
>>> +SYM_FUNC_START(__arch_chacha20_blocks_nostack)
>>> +    stwu    r1, -96(r1)
>>> +    stw    r5, 20(r1)
>>> +    stmw    r14, 24(r1)
>>> +    li    r31, 4
>>> +    LWZX_LE    r14, 0, r5
>>> +    LWZX_LE    r15, r31, r5
>>
>> Why swap endian on the counter?
> 
> Unlike the keys, the counter is passed to the function as an u8*, not as 
> a u64*, so I thought it was raw data in little endian order, same as 
> when using Sodium. Is it wrong ?

Hum ..... I looked again and it seems it is already a u32 *. Looks like 
I mis-read the 8-byte comment. Or I did it right in the begining then I 
swapped it at the same time as I swapped the keys after my first test 
when the selftest was using Sodium. I can't remember. I'll fix it.

Christophe


More information about the Linuxppc-dev mailing list