Hello Niels, Simo,

Thanks for the comments.  I've updated MR addressing part of them (see
inline for the details).

Simo Sorce <s...@redhat.com> writes:

> On Mon, 2024-01-15 at 21:43 +0100, Niels Möller wrote:

>> Thanks, I've had a look, and it looks pretty good to me. Some comments
>> and questions:
>> 
>> * For tests, would it make some with some test that check that
>>   encryption with a given message and randomness gives the expected
>>   output? Even better if there are any authoritative testcases for that?

I would be happy to add if there are any, even if they are not so
authoritative, though I wasn't even able to find ones with compatible
license, in particular with SHA-2 being used as an underlying hash
algorithm for MGF-1.

- Project Wycheproof (Apache 2.0):
  
https://github.com/google/wycheproof/blob/master/testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.json

- Python Cryptography (Apache 2.0 and BSD):
  https://cryptography.io/en/latest/development/custom-vectors/rsa-oaep-sha2/

In any case, I'll try to check against those vectors manually outside
the Nettle repository to ensure the correctness.

>> * Is it useful to have oaep_decode_mgf1 and oaep_encode_mgf1 advertised
>>   as public functions, or would it be better to make them internal?

Made them internal functions.

>> * Do you see any reasonable (i.e., with a net gain in maintainability)
>>   way to share more code between _oaep_sec_decrypt_variable and
>>   _pkcs1_sec_decrypt_variable?
>
> I did review this part, and to me it seem like it is more maintainable
> to keep them separate, they already are tricky as it is, adding more
> variability sounds to me would just make them more complex and
> difficult to reason about.

I agree with that, considering potential optimization opportunities by
the compiler.

>> * For oaep_decode_mgf1, oaep_encode_mgf1, maybe one could let the caller
>>   allocate and pass in the appropriate hashing context? Would be easy to
>>   do, e.g., in rsa_oaep_sha512_decrypt. But it looks like that would be
>>   inconsistent with pss_mgf1, though (which looks like it needs a
>>   separate hashing context).

Done.

>> * I think it was a design mistake to represent RSA ciphertexts as mpz_t
>>   rather then octet strings in Nettle's original RSA interfaces. I
>>   wonder if it would make sense to let the new functions take
>>   octet strings instead?

Done.

Regards,
-- 
Daiki Ueno
_______________________________________________
nettle-bugs mailing list -- nettle-bugs@lists.lysator.liu.se
To unsubscribe send an email to nettle-bugs-le...@lists.lysator.liu.se

Reply via email to