-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[new release] base64 (3.0.0) #13297
[new release] base64 (3.0.0) #13297
Conversation
CHANGES: * Implemenation of Base64 according to RFC 2045 (available on base64.rfc2045) * New implementation of Base64 according to RFC 4648 from nocrypto's implementation * Fix bad access with `String.iter` on the old implementation of Base64 (@dinosaure, mirage/ocaml-base64#23) * Check isomorphism between `encode` & `decode` function (@hannesm, @dinosaure, mirage/ocaml-base64#20) * Add tests from RFC 3548 and from PHP impl. (@hannesm, @dinosaure, mirage/ocaml-base64#24) * Add fuzzer on both implementations - check isomorphism - check bijection - check if `decode` does not raise any exception * __break-api__, `B64` was renamed to `Base64` (@copy, @avsm, @dinosaure, mirage/ocaml-base64#17) * __break-api__, `Base64.decode` and `Base64.encode` returns a result type instead to raise an exception (@hannesm, @dinosaure, mirage/ocaml-base64#21) * __break-api__, Add `sub` type to avoid allocation to the end-user (@avsm, @dinosaure, mirage/ocaml-base64#24) * __break-api__, Add `pad` argument on `decode` function to check if input is well-padded or not (@hannesm, @dinosaure, mirage/ocaml-base64#24) * __break-api__, Add `off` and `len` optional arguments on `encode` & `decode` functions to compute a part of input (@cfcs, @dinosaure, mirage/ocaml-base64#24) * Better performance (see mirage/ocaml-base64#24) (@dinosaure) * Review of code by @cfcs (see mirage/ocaml-base64#24)
REVDEPS failure was expected, so we need to do a pass over dependencies now ... |
@dinosaure you can do |
I'm currently write an article about release of |
🌤️ opam-lint warnings 120c118
☀️ Installability check (10248 → 10249)
|
Hmmhmm, what is wrong now? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine to merge; just unrelated breakage.
@dinosaure do you want to prepare the discuss post before merge? When merged, this will break a lot of --dev
packages until the upstreams add constraints too.
This needs a constraint on the OCaml compiler:
|
About article, I will try to do something but consider to merge before. |
Thanks |
Base64 encoding for OCaml
CHANGES:
String.iter
on the old implementation of Base64 (@dinosaure, Bad access on string onB64
module mirage/ocaml-base64#23)encode
&decode
function (@hannesm, @dinosaure, Real iso on B64 mirage/ocaml-base64#20)decode
does not raise any exceptionB64
was renamed toBase64
(@copy, @avsm, @dinosaure, The ocamlfind/opam name ("base64") is different from the name of the main module ("B64") mirage/ocaml-base64#17)Base64.decode
andBase64.encode
returns a result type instead to raise an exception (@hannesm, @dinosaure, deprecate decode in favour of decode_opt mirage/ocaml-base64#21)sub
type to avoid allocation to the end-user (@avsm, @dinosaure, New version of ocaml-base64 according to nocrypto's base64 implementation mirage/ocaml-base64#24)pad
argument ondecode
function to check if input is well-padded or not (@hannesm, @dinosaure, New version of ocaml-base64 according to nocrypto's base64 implementation mirage/ocaml-base64#24)off
andlen
optional arguments onencode
&decode
functions to compute a part of input (@cfcs, @dinosaure, New version of ocaml-base64 according to nocrypto's base64 implementation mirage/ocaml-base64#24)