# obfuscator
obfuscator is a C/C++ source-code obfuscation tool.
## Status
obfuscator is not feature-complete yet. Below you can find a list of the implemented features and the ones that will be implemented.
If you have suggestions or recommendations for features to add please make an issue with the `obfuscator` label.
### Implemented Features
* Identifier Obfuscation: Swaps the name of all identifiers with their hash.
### Future Features
* Obfuscation Exclusion List: obfuscator will accept a list of idenftifiers and their namespace and will not obfuscate those. This feature is added so the user can refrain from obfuscating the standard library.
* Whitespace Deletion: Pretty much kills all whitespace where it doesn't change the syntax.
* Comment Deletion: Deletes all comments.
## Notes
* Currently the hash function that is being used is `std::hash<>`. The GCC implementation will be probably the default option since the digest is shorter than 32 characters long. The decision was made since quite a few embedded C/C++ compilers can't correctly handle identifiers longer than 32 characters(implementation limitations).