Giter Club home page Giter Club logo

Comments (7)

paragonie-scott avatar paragonie-scott commented on August 23, 2024

My solution would be: Always would set the MSB to 0, for interoperability with languages that don't have unsigned integer support.

be instructed to throw if the most significant bit is ever populated (i.e. the result is greater than something like UInt64.max/2).

+1

from paseto.

aidantwoods avatar aidantwoods commented on August 23, 2024

Seems reasonable (that's how I've got it implemented at the moment even). This just a request to clarify the spec a little for this case :)

from paseto.

paragonie-scott avatar paragonie-scott commented on August 23, 2024

e4b7548 should be adequate for disambiguating the documentation. Good call on reporting this 👍

from paseto.

aidantwoods avatar aidantwoods commented on August 23, 2024

LGTM!

PHP only has signed ints, so isn't & PHP_INT_MAX the identity map? ;p

$accumulator .= \pack('P', $len & PHP_INT_MAX);

from paseto.

paragonie-scott avatar paragonie-scott commented on August 23, 2024

Yep. I included it since this is the reference implementation, and it'll decrease the odds that somebody accidentally overlooks it and somehow signs a 2^63+1 length message one day in another language.

from paseto.

aidantwoods avatar aidantwoods commented on August 23, 2024

Aha, yeah okay that makes sense.

In that case maybe even something like $signedInt64Max = PHP_INT_MAX would make it abundantly clear (since unsigned ints are mentioned in the doc block), but at some point people should read the spec, or at least look up what PHP_INT_MAX refers to so 🤷‍♂️.

from paseto.

aidantwoods avatar aidantwoods commented on August 23, 2024

aidantwoods/swift-paseto@8ad4740 addresses this at my end.

from paseto.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.