Bytes.Writer.make' which allows to access the writer in the write function.Bytesrw_fmt.Slice.pp' ~head:true, the ellipsis could be missing on truncated output. Thanks to Anil Madhavapeddy for the report.Bytes.Slice.of_bigbytes_or_eod on empty ranges. It raised Invalid_argument instead of returning eod. Thanks to Anil Madhavapeddy for the report and the fix.Bytes.Reader.empty ignoring its pos and slice_length optional argument. Indirectly affected the result of Bytes.Reader.{of_bytes,of_string,of_slice,sub} when those would return an empty stream reader. Thanks to Anil Madhavapeddy for the report and the fix.Bytes.Writer.limit filter raising Invalid_argument instead of a Stream.Limit error if the last write is exactly in the limit but the next one blows it (#15). Thanks to Vladimir N. Silyaev and Anil Madhavapeddy for the report and the fix.Bytes.Writer.limit resulting's writer Writer.pos final value. Cap it at what is supposed to be seen by the limit. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_zstd.decompress_writes position error reporting. The reported positions were in the decompressed stream rather than in the compressed stream.Bytesrw_sysrandom potential unwarranted panics on Linux due to short getrandom results or EINTR. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_xxhash.Xxhash_128.update using Xxhash_64.update. This doesn't change previously generated hashes as libxxahsh 0.8.x use the same implementation for both. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_cryptoPsa.Alg.is_tls12_psk_to_ms wrongly assumed not to be in TF-PSA-Crypto due to a typo. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Alg.is_rsa_oaep and Psa.Mac.max_size, they were returning garbage. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Key_agreement.raw_output_size returning garbage due to a Val_long used instead of Long_val. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Key_lifetime.from_persistaence_and_location, the components were combined with logand instead of logor. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Aead.decrypt stub in bytecode, it was calling the encrypt stub. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Key_type.is_{public_key,key_pair}. They were implemented as is_assymetric. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Status.message have a user friendly message for Error.{insufficient_entropy,invalid_padding}. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Alg.pp, SHA3-512 was printed as SHA3-256. to Anil Madhavapeddy for the report and the fix.Psa.Key_type.pp DH key-pairs where printed as an unknown key type. Thanks to Anil Madhavapeddy for the report and the fix.Psa.Alg.cbc to Psa.Alg.cmac. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_tlsBytesrw_tls reader and writer, reading and writing beyond slice lengths. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_tls.X509_certchain.{self_signed,ca_signed} memory leak. Thanks to Anil Madhavapeddy for the report and the fix.Bytesrw_tls.X509_certchain.Private_key.write_pem_file. The C function handling the write was not zeroing a temporary stack allocated buffer holding the private key. Thanks to Anil Madhavapeddy for the report.Bytesrw_zlibBytesrw_zlib error reporting. Thanks to Anil Madhavapeddy for the fix.Bytesrw_zlib.{Deflate,Zlib,Ggzip}.decompress_writes position error reporting. The reported positions were in the decompressed stream rather than in the compressed stream. Thanks to Anil Madhavapeddy for the report.Bytesrw_zlib.Gzip.decompress_writes accepting a truncated last member intead of erroring. Thanks to Anil Madhavapeddy for the report and the fix.Bytes.Writer.writes_to_stringBytes.Slice.{take,drop}_first_or_eod (#11).Bytes.Slice.{take,drop,break} in favor of Bytes.Slice.{take_first,drop_first,cut_first} to align on the stdlib's new String terminology (#11).Bytes.Slice.compare. The last byte of equal length slices was not compared (#14). Thanks to Anil Madhavapeddy for the report.Bytes.Reader.of_slice when the given slice does not start at 0 (#13). Thanks to Thomas Gazagnaire for report.Bytesrw_sysrandom: fix headers for musl libc (alpine) (#7)Bytesrw_sysrandom module for operating system provided cryptographically secure pseudorandom byte streams and an entropy primitive.Bytesrw_crypto.Psa module for low-level cryptographic operations on byte slices. These are thin and safe bindings to the PSA Crypto API specification currently provided by the TF-PSA-Crypto C library distributed with Mbed TLS.Bytesrw_crypto module for higher-level cryptographic operations implemented over Bytesrw_crypto.Psa. Mostly hashing for now. Use this if you need SHA-3 hashes.Bytesrw_tls a module for TLS encrypted streams and the needed X.509 certificate management (including system lookups for trusted CAs). The backend is provided by the Mbed TLS C library.Bytesrw_unix.bytes_writer_of_socket_fd which shutdowns the fd in the send direction when the end of stream is written.Bytes.Slice.last.Int_val vs Long_val in C bindings. Affects Bytesrw_blake3, Bytesrw_md, Bytesrw_xxh, Bytesrw_zlib, Bytesrw_zstdBytesrw_xxhash.Xxh64.{to_hex,pp}. Leading zeros were not being printed (#5).Slice.break: do not return None if any of Slice.take or Slice.drop does. Simply return the result of both operations.Slice.{sub,make}[_or_eod]. The functions now behave like Bytes.sub as far as indexing is allowed. Thanks to Adrián Montesinos González for the report and suggesting the fix (#4).bytesrw.* libraries are made to export bytesrw.First release.
Supported by a grant from the OCaml Software Foundation.