* fix: format with clang-format-20
* fix: fix clang-format linter with rewrite '^#define.*/\*.*\\$'
* fix: update clang-format to version 20 in workflows and documentation
* fix: add SPDX license information to .git-blame-ignore-revs
* Rename librz/util/ubase64.c into librz/util/base64.c for consistency #5216
* Add Doxygen documentation to function in librz/util/base85.c #5216
* Add unit-tests for librz/util/base85.c #5216
* Refactor base85 API and internal functions #5216
base85 was using a FILE as an input and it used to print its result to
STDOUT, which was very bad for having unit-testing or to use it to
extend rz-hash functionality, since the solution I really had was
through using pipes which isn't ideal as much as the refactoring one.
* Extend rz-hash with base85 #5126
* Fix formatting #5216
* Extract base36 decoding function from subprojects/rzwinkd/iob_net.c to librz/util/base36.c #5216
- Also, added Doxygen docs to rz_base36_decode function
* Added rz_base36_encode_dyn #5216
- this function encode a u64 value to it's char[13+1] base36 counterpart
- later, it will be helpful in expanding the funcitionality of rz-hash
- added its Doxygen docs
* Expand rz-hash with base36 encoding/decoding #5216
* Refactor rz_base36_decode to return a suitable error code like -1 #5216
- that should help testing it later for valid and invalid decodings
- keeping the original behaviour as it was in
subprojects/rzwinkd/iob_net.c
* Add unit-tests for base36 encoding & decoding functions #5216
* Fix formatting #5216
* Fix base36.h header file guards #5216
* Add base32 encoding & decoding #5216
added their Doxygen Docs as well
* Add base32 encoding and decoding unti-tests #5216
* Expand rz-hash with base32 encoding/decoding functionality #5216
* Fix formatting #5216
* Fix add base32 to codec_name_bytes #5216
* Fix base32 docs #5216
* Add base16 encoding/decoding functions #5216
- added their Doxygen docs as well.
* Add base16 unit-tests #5216
* Fix test_base85 conversions warnings #5216
* Expand rz-hash with base16 encoding/decoding functionality #5216
* Fix formatting #5216
* Fix doxygen docs #5216
* Restore subprojects/rizin-shell-parser/parser.c to match origin/dev
* Fix the order by baseXX
* Fix base16 - invert the logic in calculate_src_length
* Fix base16 - intialize variables in rz_base16_encode
* Fix base16 - null terminate the output buffer of rz_base16_encode_dyn
* Fix base16 - get rid of unnecessary else in rz_base16_decode
* Fix base16 - use `len & 1` instead of `(len % 2) != 0`
* Fix base32 - invert the logic in calculate_src_length
* Fix base32 - compress two return statments by using `rz_return_val_if_fail(src && dest, 0);`
* Fix base32 - null terminate the output of rz_base32_encode
* Fix base32 - get rid of unnecessary else in rz_base32_decode
add more parentheses to split addition from mult for better clarity
* Fix base32 - intialize variables in rz_base32_encode_dyn
* Fix base36 - intialize `tmp` variable in rz_base36_encode_dyn
* Fix base36 - use RZ_LOG_ERROR instead of eprintf
* Fix base36 - use RZ_NULLABLE for the API interface
* Fix base85 - use RZ_OUT & RZ_NULLABLE for the API interface
* Fix base85 - use RZ_LOG_ERROR instead of eprintf
* Fix base85 - use size_t instead of int for decode_tuple_buf
* Fix base85 - remove unused varaible, `out_len`, in rz_base85_encode_dyn
* Fix base85 - correct decode buffer size calculation
The previous rz_base85_dec_buflen() underestimated the worst‑case output
size (3 bytes per 4 input chars), causing overflows when using ‘z’/’y’
abbreviations. Update it to allocate 4 bytes per input character plus
one for the NUL terminator, eliminating heap-buffer-overflow errors.
* Fix formatting
* Fix base85-test - use `newlines` variable to make sure line breaks were inserted as expected
* Fix base85-test - remove unnecessary includes
* Fix rz-hash test - updated rz-hash -L expected result
* Fix crypto_base36 - use RZ_LOG_ERROR instead of eprintf
* Fix base16 - compress rz_return_val_if_fail statements and move before locals
* Update base16 - use hex.c existing encoding/decoding logic
- base16.c encoding/decoding functions are now wrappers for hex.c
`rz_hex_bin2str` and `rz_hex_str2bin` functions
- updated related base16 unit testing and documentation
- updated the integraion with rz-hash binary (or crypto_base16)
* Fix formatting
* Add documentation to rz_hex_bin2str
* Fix base85 - add missing `reutrn` docs to rz_base85_encode function
* Fix base85 - use RZ_NONNULL for dest and src function instead of RZ_NULLABLE
* Fix base36 - use RZ_NONNULL for dest and src function instead of RZ_NULLABLE
* Fix base16 - use RZ_NONNULL for dest and src function instead of RZ_NULLABLE
* Fix base32 - use RZ_NONNULL for dest and src function instead of RZ_NULLABLE
* Fix base16 - add missig checks for invalid inputs in rz_base16_encode & rz_base16_encode_dyn
* Fix base32 - add missing checks for bad encoding
* Fix - add missing SPDX
* Fix Formatting
* Add rz_base36_encode & rz_base36_decode_dyn functions to base36 API
* Setting GNU99/C99 standard for subprojects
* Remove use of `add_global_arguments`
* Added extern "C" linkage specification to some public headers of rizin
* Changed the meson_git_wrapper.py-script to explicitly specify the output-path
* Made the RIZIN_BUILD_PATH conditional in the integration-test meson-build
Co-authored-by: amibranch <amibranch@users.noreply.github.com>
* Improve cmd_help.yaml and fix a small bug
* Add support for 64bit random numbers
* Make a distinction between 32- and 64-bit PRNG
* Add documentation for new functions
* Change the RBTree test to use 32-bit random numbers
* cmd: Fix summary of few "L" sub-commands
* util: start decluttering plugins handling
- Add Doxygen docs
- Remove unused API functions and make others internal only
- Use RzLibType enum for plugin type instead of int
* util: move dlopen/dlsym/dlclose to rz_sys
* util: make rz_lib_open/close return bool
* util: simplify rz_lib_add_handler and rz_lib_open*
* libs: implement rz_*_plugin_del to remove a plugin
* core: remove commands from RzCmd when removing plugins
* librz: call plugins 'fini' method when removing a plugin
* core/cmd: do not fail if the hashmap removal fails
When removing a group command, the inner command might have the same
name, thus it would result in trying to remove the same name twice.
Ignore it, as it is fine.
* librz: make RzCrypto plugins handling like the others
* librz/crypto: add rz_crypto_reset and use it
* librz: allocate the plugin structures before adding them
Adds /*<type>*/ comments and a linter check from rz-bindgen to enforce
their existence and consistency
Also includes the following fixes made when adding the annotations:
* removed unused intern_table arguments in pyc_dis.c, pyc_dis.h, asm_pyc.c
* removed unused classes argument from place_nodes in agraph.c
* removed unused recurse and recurse_bb functions in canalysis.c
* removed unused vars field from RzPrint struct
* removed unused RzAnalysisType* structs from rz_analysis.h
* removed unused list field from RzEgg struct
* fixed bug in bp_plugin.c where duplication-checking logic iterates over the wrong list
* removed unused q_regs field from RzDebug struct
* removed unused backtrace field from RzDebugPlugin struct
* removed unused classes_list field from RzBinNXOObj struct
* removed unused methods_list and classes_list fields from RzBinZimgObj struct
* build: fix compilation on Termux by using meson checks
* build: fix compilation on termux, which is recognized as linux
meson identifies termux as "linux" system, however pthread_sigmask is
not available there. Since pthread-fixes.c just defines
uv__pthread_sigmask we include it also in regular linux builds, because
the function is then used automatically instead of pthread_sigmask only
when __ANDROID__ is defined.
* subprojects/rzwinkd: define cc in meson.build before use
* Ignore resent packets
* Resend packet if we didn't get an ACK
* Break if Ctrl-C is pressed
* Always wait for a state change packet in debug event wait function
* Create `rz_windows.h`
* Move `RzThread` structure definitions to internal header
* Create and use `rz_th_get_user()` API to avoid exposing `RzThread` layout in external header
* Make `rz_th_self()` an IPI
* Use `_wmkdir()` in `rz_sys_mkdir()` on Windows
* Remove unused `winkd_break_read` function
* Remove `RzIORap` definition from `rz_io.h`
* Remove include of `Windows.h` from `rz_types.h`
* Use `rz_windows.h` when necessary
* Remove `RzCoreRtrHost` definition from `rz_core.h`
* Remove `rz_socket.h` include from `rz_core.h`