[FL-1934] Core: wipe memory after free. SubGhz: key encryption tool. (#797)

* Core: wipe memory after free. RFID,iButton: fix iterator use after invalidation.

* Debug: support unix wildcards for register matching in svd, update MCU description file and minify it.

* Toolbox: getter for File in FlipperFile.

* Makefile: conditional flashing

* SubGhz: keeloq_mfcodes encryption tool.

* FuriHal: proper IV handling on CBC in crypto. SubGhz: add support for encrypted keeloq keys. Makefile: move formatting to top Makefile.

* SubGhz: rename some function names to match naming scheme.

* SubGhz: encryption tool, fix windows line endings

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
This commit is contained in:
あく
2021-11-01 16:11:25 +03:00
committed by GitHub
parent 3f93a0ae46
commit 22a4bac448
18 changed files with 760 additions and 37106 deletions

View File

@@ -22,6 +22,7 @@ import math
import sys
import struct
import pkg_resources
import fnmatch
from .svd import SVDFile
@@ -101,13 +102,6 @@ class LoadSVD(gdb.Command):
raise gdb.GdbError("Could not load SVD file {} : {}...\n".format(f, e))
if __name__ == "__main__":
# This will also get executed by GDB
# Create just the svd_load command
LoadSVD()
class SVD(gdb.Command):
"""The CMSIS SVD (System View Description) inspector command
@@ -321,13 +315,19 @@ class SVD(gdb.Command):
container = peripheral.name + " > " + register.name
self._print_register_fields(container, form, register)
else:
gdb.write(
"Register/cluster {} in peripheral {} does not exist!\n".format(
s[1], peripheral.name
found = False
for key in fnmatch.filter(peripheral.registers.keys(), s[1]):
register = peripheral.registers[key]
container = peripheral.name + " > " + register.name
self._print_register_fields(container, form, register)
found = True
if not found:
gdb.write(
"Register/cluster {} in peripheral {} does not exist!\n".format(
s[1], peripheral.name
)
)
)
return
if len(s) == 3: