CHANGES
=======

0.2.4
-----

* Remove reference to direct dependencies (#252)
* Install setuptools as part of publish (#251)
* Add trusted publishing to PyPI (#250)
* Add publishing to PyPI and Test PyPI (#249)
* Allow install of thirdparty rules via an extra (#248)
* Fix nit error in doc (#247)
* Add a Reporting Bugs section (#246)
* Prohibit GPL based licenses being introduced (#245)
* Only trigger unit tests on pull requests (#244)
* Bump versions of actions used (#243)
* Add a dependency review workflow action (#242)
* Represent env var DEBUG if set (#241)
* Update man page to reflect current function (#240)
* Fix links and titles to docs (#239)
* Fix reference to doc to docs for RTD (#238)
* Fix requirements reference in readthedocs.yaml (#237)
* Add Read The Docs config file (#236)
* Add license on use (#235)
* Update year and remove spdx (#234)
* Remove the unused examples (#233)

0.2.3
-----

* Move 3rd party rules to separate repo (#232)
* Flatten the directory structure of the rule unit tests (#231)
* Flatten the directory structure of rules (#230)
* Nit fix of docstring in Level enum (#211)
* Use the org level .github for issue templates (#209)
* Add rule for weak diffie-hellman keys in SSLContext (#208)
* Add rule for usage of Flask.run with debug true (#207)

0.2.2
-----

* Update upload-asset.yml (#206)

0.2.1
-----

* Refactor building of ignore manager (#205)
* Add support to ignore files via .preignore (#204)
* Fix a couple errors found scanning thousands of files (#203)
* Handle SyntaxWarnings appearing in output (#202)
* Better handling of SyntaxErrors (#201)
* Automatically ignore files matching .gitignore patterns (#200)
* Move visit\_comment into base class (#199)
* Implement suppression in Go parser (#198)
* Bump Python version to 3.12 (#181)
* Fix parsing of int values (#197)
* Properly check key size or bits type as int (#196)
* Some doc nits (#195)
* Add golang\_org\_x\_weak\_cipher and testing (#194)
* More refactoring of tests (#193)
* Refactor the tests and test\_case.py (#192)
* Add tests for Go rules (#191)
* Add Go rule for weak rsa and dsa key sizes (#190)
* Add Go rule for md4 and ripemd160 weak hashes (#189)
* Add weak hash Go rule (#188)
* Add weakhash Go rule for md5 and sha1 (#187)
* golang\_org\_x\_crypto\_ssh to golang\_org\_x\_crypto (#186)
* Reorganize test for one Go rule (#185)
* Remap the rule IDs (#184)
* Remove third\_party directory and flatten rules (#183)
* Implement Go parser and one example rule (#182)
* Bump actions/setup-python from 4 to 5 (#180)

0.2.0
-----

* Aiohttp tests (#179)
* Add rule for aiohttp no ssl verify (#178)
* Add further tests of cryptography (#177)
* Add tests for pycryptodomex (#176)
* Add pycrypto tests (#175)
* Add tests for pandas (#174)
* Add all tests for jsonpickle (#173)
* Add tests for M2Crypto (#172)
* Add dill\_load tests (#171)
* Add tests for pyopenssl weak keys (#170)
* Create pyghmi tests (#169)
* Auto generate yaml tests (#168)
* Auto generate httpx tests (#167)
* Auto generate jsonpickle tests (#166)
* Auto generate hmac tests (#165)
* Auto generate tests for hashlib (#164)
* Auto generate ssl tests (#163)
* Auto generate logging tests (#162)
* More auto-generated tests (#161)
* Auto generate shelve tests (#160)
* Auto generate poplib tests (#159)
* Auto generate pickle tests (#158)
* Auto generate nntplib tests (#157)
* Auto generate marshal tests (#156)
* Auto generate json tests (#155)
* Auto generate imaplib tests (#154)
* Auto generate ftplib tests (#153)
* Auto generate crypt tests (#152)
* Auto generate tests for requests (#151)
* Use better test generation for cryptography (#150)
* Dynamically generated unit tests based on files (#149)
* Add rule for m2crypto weak keys (#148)
* Add rule for PyOpenSSL RSA and DSA key generation (#147)
* Use RULE\_ID constant (#146)
* Add pycrypto and dome cipher and key rules (#145)
* Fix doc nits (#144)
* Add weak cipher, cipher mode rules (#143)
* Add tests for EC keys (#142)
* Add tests for RSA generate\_private\_key (#141)
* Add tests for DSA generate\_private\_key and generate\_parameters (#140)
* Add rule for cryptography weak keys (#139)

0.1.9
-----

* Update docstrings (#138)
* Bump actions/checkout from 3 to 4 (#136)
* Bump actions/setup-python from 3 to 4 (#137)
* Create dependabot.yml (#135)
* Add checks for hashlib.pbkdf2\_hmac (#134)
* Handle syntax errors in code (#133)
* New rule on tempfile.mktemp (#132)
* Add thousands separator to metrics (#131)
* Fix IndexError in \_get\_var\_node (#130)
* Add testing for imaplib, poplib, nntplib, and smtplib (#129)
* Add ability to analyze call history (#128)
* Start using pre-commit (#127)

0.1.8
-----

* No need to check for suppressions (#126)
* Do not return fixes for a suppressed result (#125)

0.1.7
-----

* Add tests for suppression code (#124)
* Fix typo in suppression message (#123)
* Add support of suppressions (#122)

0.1.6
-----

* Implement the short description property (#121)
* Minor cleanup fix (#120)

0.1.5
-----

* Small fix in detailed renderer (#119)
* Move plugin loading to loader (#118)
* Move some base classes into \_\_init\_\_ (#117)

0.1.4
-----

* Add metrics summary to the output (#116)
* SSHClient can be imported from paramiko (#115)
* Some comparison code cleanup (#114)
* Highlight the operator instead of digest (#113)
* Add rule for HMAC timing attack (#112)
* Avoid double visit in edge case (#111)
* Add support of assignments via walrus operator (#110)
* Add testing for rule pickle (#109)
* Add shelve rule testing (#108)
* Add testing of marshal.load rule (#107)
* Add json.load testing (#106)
* Hmac allows hashlib hashes as digest (#105)
* Add testing for hmac rule (#104)
* Add testing for hashlib rule (#103)
* Add testing for crypt rule (#102)
* Some nit change (#101)
* Fixes for new Call class (#100)
* Creation of Call and Argument classes (#99)
* Add framework for Suppressions (#98)
* Nit: make location optional in result (#97)
* Add kind property to result (#96)
* Add ability to enable or disable rules (#95)
* Add a docs Github action workflow (#94)
* Add sphinx docs for stdlib rules (#93)
* Remap the rule ID numbers (#92)

0.1.3
-----

* Update upload-asset.yml (#91)

0.1.2
-----

* Update upload-asset.yml (#90)

0.1.1
-----

* Create upload-asset.yml (#89)
* Add names to each symbol table (#88)

0.1.0
-----

* Cleanup various rules (#87)
* Fix some of the todos in ftp and tls rules (#86)
* Remove unused args argument in analyze (#85)
* Add fixes for httpx (#84)
* Fix the suggested fix output (#83)
* More extensive refactoring (#82)
* Better handling of context, nodes and such (#81)
* More detailed ftp rule and tests (#80)
* Add fixes and tests for ftplib (#79)
* More suggested fixes for rules (#78)
* Use symbol class instead of tuple (#77)
* New version of suggested fixes (#76)
* Show better context of offending code (#75)
* Add logger init code (#74)
* Add no-color option to CLI args (#73)
* Add some initial output renderers (#72)
* Fix no\_host\_key and other nits (#71)
* Prototype parse and unparse imports (#70)
* Initial drop implementing suggested fixes (#69)
* Nit: remove setting None in call context (#68)
* Add test to requests rule verify-as-var (#67)
* Handle variable arguments with value None (#66)
* Fix some nits related to logging rule (#65)
* Add rule for logging.config.listen (#64)
* Fix for traceback on with statement (#63)
* Add support for context managers (#62)
* Add rule for httpx no cert verify (#61)
* Add rule for requests no cert verify (#60)
* Add wildcard imports to pyopenssl (#59)
* Add rule for pyopenssl insecure methods (#58)
* More TLS version testing (#57)
* Add ssl insecure version rule (#56)
* Add rule for \_create\_unverified\_context (#55)
* Different levels of severity depending on policy (#54)
* Add more docstrings (#53)
* Slight refactor (#52)
* Fix errors when running against a lot of code (#51)
* Adds a recursive option to CLI (#50)
* Handle multiple files for directories (#49)
* More various clean up (#48)
* Some more small refactoring (#47)
* Refactor the python parser (#46)
* Drop with modified tests (#45)
* Rename lang to stdlib (#44)
* Upper case the rule IDs (#43)
* Redo symbol table to more polished solution (#42)
* Early implementation of symbol table (#41)
* Test and fix for wildcard imports (#40)
* Add some more example tests (#39)
* Remove official macOS support for now (#38)
* Rename rule variable cwe to cwe\_id (#37)
* Create examples in test directory (#36)
* Some more refactoring for simplicity (#35)
* Some minor cleanup fixes (#34)
* Resolving qualified names is now scope aware (#33)
* Add testcase of an import within a function (#32)
* Fix up the match call functions (#31)
* Set the rule ID in the setup.cfg (#30)
* Add check for hmac weak hashes (#29)
* Add cryptography weak hashes check (#28)
* Add more weak hash checks (#27)
* Remove redundant pip installs (#26)
* A fix for numerous things (#25)
* Convert node bytes to str (#24)
* Fix resolving fully qualified attributes (#23)
* Render the result to the command line (#22)
* Simplify rule impl with less code (#21)
* Use the function call qualified name in message (#20)
* More rules around deserialize (#19)
* Update unit-test.yml
* Update tox.ini
* Support tox4 (#18)
* Handle more types of nodes and kwargs (#17)
* Update unit-test.yml
* Update README.md
* Update README.md (#16)
* Delete dependency-review.yml (#15)
* Fix pep8 errors (#13)
* Update unit-test.yml (#14)
* Add template and workflows to the repository (#12)
* First working complete Rule (#11)
* Drop of working code for rules to match calls (#10)
* Rename of the rule and parser base classes (#9)
* Big drop including mechanics of rules (#8)
* Early drop of handling call nodes (#7)
* Parser handling of import and import from statements (#6)
* Use abstract base class for parsers (#5)
* Make use of importlib instead of pbr (#4)
* Clean up based on pylint and format checking (#3)
* Second drop demonstrating parser and rule loading (#2)
* Initial drop of minimal working CLI (#1)
* Initial commit
