Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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)
- Loading branch information