Re: [RFC] Libsodium - Discussion
| From: | Scott Arciszewski | Date: | Wed, 01 Jun 2016 13:45:04 +0000 |
| Subject: | Re: [RFC] Libsodium - Discussion | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-93674@lists.php.net to get a copy of this message | ||
On Wed, Jun 1, 2016 at 6:48 AM, Marco Pivetta <ocramius@gmail.com> wrote:
> Hey Scott,
>
> On 1 June 2016 at 09:49, Scott Arciszewski <scott@paragonie.com> wrote:
>
>> Hi PHP Internals Team,
>>
>> Let's begin discussing the prospect of adding libsodium as a core
>> extension
>> in PHP 7.1. I've updated the RFC to explain why this would be a good idea
>> and the benefits it offers.
>>
>> https://wiki.php.net/rfc/libsodium
>>
>> If the subsequent discussion goes smoothly, I would like to open voting on
>> June 15.
>>
>> Together, let's make PHP cryptography so safe that it becomes boring.
>>
>
> First, thanks for providing better alternatives to crypto in PHP!
>
> I also agree with Remi on naming: let's avoid calling the extension
>
libsodium.
>
> I have some concerns that are just about code quality, not about
> functionality. Consider that I didn't look at the underlying library (and I
> really care little about it, from a consumer perspective).
>
> 1. is there a particular reason why abbreviations are used? For instance,
> why sodium_randombytes_buf() instead of
> sodium_random_bytes_buffer()?
> 2. from a naming perspective, I'd expect
> sodium_randombytes_buf() to
> give me a buffer of random bytes (probably as a stream), but it returns the
> actual string of random bytes. Again: confusing naming
> 3. can we avoid using "themed" naming? For example, instead of
> sodium_crypto_secretbox(), it would be best to express what it
> actually
> does, like sodium_encrypt_and_sign(). While the naming may be
> emerging
> from lower layers, I still (like I did with other RFCs) disagree with
> inheriting confusing naming. This will just cause users to look up the
> naming up when reading or writing code, and ultimately add up to silly
> bugs. I can already foresee that people will use the API incorrectly just
> because of the naming.
> 4. can't we just keep it namespaced under Sodium, instead
> of adding
> more stuff to the root level namespace? Does anyone have a reference to the
> coding standards that would cause the rename?
>
> Cheers,
>
> Marco Pivetta
>
> http://twitter.com/Ocramius
>
> http://ocramius.github.com/
>
>
I'd love to just keep the namespace personally
(
Ke
eping \Sodium\foo() and \SODIUM\FOO means code I've written today will
work in 7.1 for non-PECL users
, and less work we thrust on Frank Denis)
but it was previously expressed that doing so violates the coding standard.
Changing to sodium_* would mean less bikeshedding and automatic "No"
votes.
As for the function names, that's what they were called in NaCl.
https://nacl.cr.yp.to/secretbox.html
I believe randombytes_buf() was named in a similar spirit to OpenBSD's
arc4random_buf().
Scott Arciszewski
Chief Development Officer
Paragon Initiative Enterprises <https://paragonie.com/>