summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLudwig <vasseur.ludwig@gmail.com>2020-10-02 14:52:40 +0200
committerLudwig <ludwig@v>2020-10-02 14:55:38 +0200
commit18f35ab726ec8c8d7659f6faa89803d93083dd73 (patch)
tree4d4afb4aa8750dc5a420cadce4290f1078982d2f
downloadpsa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar.gz
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar.bz2
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar.lz
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar.xz
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.tar.zst
psa-nac-firmware-reverse-engineering-18f35ab726ec8c8d7659f6faa89803d93083dd73.zip
-rw-r--r--EFS_Keys/0b00000e00000000.blobbin0 -> 3018 bytes
-rw-r--r--Firmware_Keys/WAVE1/7.3.1-r1.key27
-rw-r--r--Firmware_Keys/WAVE2/21.04.62-52-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.04.62-54-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.05.65-32-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.05.68-24-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.05.78-22-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.05.82-12-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.05.90-42-r0.key0
-rw-r--r--Firmware_Keys/WAVE2/21.05.90-42-r1.key27
-rw-r--r--Firmware_Keys/WAVE2/21.06.47-34-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.07.16-32-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/21.07.67-32-r1.key27
-rw-r--r--Firmware_Keys/WAVE2/21.08.22-32-r1.key27
-rw-r--r--Firmware_Keys/WAVE2/21.08.24-12-r1.key27
-rw-r--r--Firmware_Keys/WAVE2/21.08.25-12-r0.key27
-rw-r--r--Firmware_Keys/WAVE2/5.15.45-32-r0.key27
-rw-r--r--Firmware_Keys/WAVE3/31.08.05-46-r0.key27
-rw-r--r--Firmware_Keys/WAVE3/31.09.46-62-r0.key27
-rw-r--r--Firmware_Keys/WAVE3/42.01.72-32-r0.key27
-rw-r--r--Firmware_Keys/WAVE4/42.01.72-32-r0.key27
-rw-r--r--LICENSE674
-rw-r--r--README.md12
-rw-r--r--Scripts/decrypt_SWL.sh41
-rw-r--r--Scripts/decrypt_smime_file.sh27
-rw-r--r--Scripts/mount_ubifs_nac.sh21
-rw-r--r--Scripts/mount_ubifs_rcc.sh21
27 files changed, 1309 insertions, 0 deletions
diff --git a/EFS_Keys/0b00000e00000000.blob b/EFS_Keys/0b00000e00000000.blob
new file mode 100644
index 0000000..f627b34
--- /dev/null
+++ b/EFS_Keys/0b00000e00000000.blob
Binary files differ
diff --git a/Firmware_Keys/WAVE1/7.3.1-r1.key b/Firmware_Keys/WAVE1/7.3.1-r1.key
new file mode 100644
index 0000000..99ab617
--- /dev/null
+++ b/Firmware_Keys/WAVE1/7.3.1-r1.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtj6zpo5vM95NFWV7bdkG2sb3fx2px6kSJrcmOmeOzbc9pOhR
+s47YhptUF0K7p+3rY8WKhm4u789RPPt8MIrIMLkktwEAMCPyLorSKwtKBWAaF42Y
+2cBEYAHeswUsoJ/ta3p8xgIYOprlLmzSIGLYdwk6hjIEcUc2FqjOvndlzbCxqKgi
+YWkdjtOnRKkjTOYB9sEggVzQEUlq7KZefAQOdlEIRQCjynkV7d42JCyNMRKUYmnI
+kIeM2iyAaRP0U5BNhKd6K7U5nol4VZYRYcqe+flD/EZZYD9sYZPjIbyvW1gdetJ4
+q4iH87VKm4vDNMWMygmmfNflX2KDPrtNKgaaBwIDAQABAoIBABbxv/Z5OkDifPvz
+od2LlFRY9nH3jxeHDrT3HAYAYbc+mbE4WojrtBEGX0jqauvShW8zQKR6HMiuZkDy
+PIlz/4460QeFRbvJ2sTHT3yB2Fji54YNmq/XiAQ6WApb3Wl/mQmOC0V2oAxI0g/N
+PYs8Rpp9+/NHOs30NDgYGqdaKuQBY2As6Btc1ztbKsnvpoeuGHAnu6o6QaePZ5/Y
+9LxBxevebO4j5odHklYeCqGAKYove3bKZmhuhfWAxNj2e5A4cSpRfezjpAmCBiYy
+lLrHKVI7uwQbGrOqY3kaja08neKoY5SqYTuzjjhPI8fEAORjTKPju0WInHg1TV58
+g/QP1DECgYEA6T3wJR7VGky+rNqousWU6JYQdTcIK37QvhWyhtkiKsal7mgKDauE
+egP0WqXQIfv20v4JffHUYBu8yd7KFiUC/qB/kM2Q8LSTzD5D1mB/B/Wi61wdwIF/
+Fjgr5E+GRDafvyWasaXu6DCCsSmFzAXw1/pzsjS6EnkWt93SZpB8OjkCgYEAyAbt
+t/A8QE/wPP5rP8++jp6FTLEP3FUhTHagzBZ4tDIX2vRsrweW48fljXHtAE9rEfWl
+iVxeBpyIZjiF+yOJkrEQ2e+LquQf8OauEkGN+89XpD4MhisS5NZozxPq7VpzHB7c
+UHeJPpdwZsgw0uaYW9oXm/DfnZIQ60+5gnWOdj8CgYApPa5sodsEX3WHktIq1CzU
+Q1R9pVFof2/hbGy4s0P7VEyarwK4EA/Ik1JthMwcdjTacdiz0ELBC6aB+0a4S6sP
+4skrjW2HYiaQAqJ0EXPksGYyP4NzOnKCN0RrhjQzc4Ujgz6rEq//ljRFpxXlUVeY
+mMxEQlZ0VbzSngJJ6FpO4QKBgHmAg+ukOOUT6akTHhCP33+AWRZBw5GiAG0S7g+q
+Yr2KZCUzLcWQBZ7tMMofdsgmdbJeFaR/f/niIZR+Jxxq9MkvVz4anSs8EQ7jAL/E
+JDveMa1pp2/kQEDS4K1QuvZcZ+mf8VHLmolzseotFkM1oTzCGG83/I0ZSb+2GMhf
+Ih8/AoGBAI6+vrvxIc/kCKaFVW5P2VWDHj/jDKZx8du19soRzd6WRQsThkwZekFA
+gox73O6NyTbn7cnP7HGul5TuwioFNGBed6Y9nQ+ZsS2CopOpsYbaqLhDlvqaMckq
+QA+dJpoVhmiBjwJiFrUygNKo+kr0YMQArCQtUBd3hnbg4g8BCULb
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.04.62-52-r0.key b/Firmware_Keys/WAVE2/21.04.62-52-r0.key
new file mode 100644
index 0000000..11aab76
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.04.62-52-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEoAIBAAKCAQEAt6XO9lz3/um7BmGTxE/gzfYCG9BYZocMo6m8RYcUEeBB/DDN
+iScxeMPhHMY9r3CYH+aSrc02Fb8jLXEd7mG5GzXfav4tUpwuZtss/lc0DOeHFhUY
+A018B+Inj3epb1Vcqrp4nX72E9oUYWQMPg+5UtxBqavRibvAW72xYyBpx7lzsbZN
+R0TVMumsyAeghBwq0UpkzYexBck7izlXwBllbngkFzmdyPdd1Z0/eglQAMgYf7/q
+E51RvMCR4h/gXuNQMcBQxQ8rOY1QDJK4ojDd3fFF5R96SXyqe+ylTuPsY78Z+CpN
+yUCHlTmbnduVEfqraXP+cKClZr6YU0993c4tTwIDAQABAoIBAGsdMc6uQROUnjpF
+lZtt/7ABqg8xAS6j3HJlIOPouoMGq1X93RP/ITLQBS/0TKxUXtZUdP8cb0xV1J2/
+mXad1wqQ7IQKRsMlR0dE1URv9nMEY900ZnIespYiiXJ7l/7Q6iDGbG1oTP0dOL/p
+S96y6yPyRfZBuhC8yqB3zswDbs9HVOa2olwKQclU9d5xJX0f6brjtDHTq48nJ3t0
+q/luj1WsfrhaxZlmWpcjL8qJNcqir3RH4pk3BjFTSV31iYaInvtN2IhkmHZHjKeo
+Y8zMR2tqsn+7it8k53sMali4fJ2Y96KqLWngPYhSPRCVc9xxgJDPGVkBhs5n0YCW
+iJhANPECgYEA6+g/Wz8FD56gpIAdSk3bYyqMsXfofggHTRya3cwF37C/8dXEW3cs
+P7CBd4Ox7HJc82C91uphxlEsN7IwoQ0kk/C/8n2k6Ld6elvcffH3U3VBYeHGJXr2
+tY2G2RfgP47ObdFZ3v6B4Mo4NpdS9Lye9CABJ3wSyAp6hmzL9gj2tfcCgYEAx0oW
+VNFjaKABznD5yaLaGX4GoeDG5cRkL8QKZ8bMuKiCuuLSz/h3dpdnetpLJOzdo7fh
+7d0fIC65w8zdG60pIweKbNm220PdAobM77SViCJJE3W0AdSnFxt4bTiYlAE30KyB
+NFvQmOY2AVGoxsoUxBHbhAKJ6iOcNlSWqcmgDWkCgYBwZrZZSYulx5UPDCPolXQk
+qc9jd5iFBFpGOYzohR9/V339QjdOxVeF+RmW0l7iJBN5uux5DDAOB/sjhnl5IwP8
+oUczyP3cDCAFUOOb9sA7ObEvbB23GgGWu5o2shOc9PQSix9hCq7jZjamfC+AgKbT
+9rPWFl30hlme1xPPZLH4PQJ/ZfqDcuOy+tbmFb26FHRBJspWmn9rSCg3HDo1GOWh
+3NxeCUQInGOIvia7zSHnUf3jbOOruQxt4QoIBSnP+1mgs0woiYrfB1Syw5g3RnIi
+Eod43XxdoJIw7qIf/cP4T8RPy3h6pVBWbedfu00OEKtX9P0uV171M9sFFMg0UK3c
+OQKBgAK0KdmlK+EKT3cjFSuDmwaLuExI4LuibQjqxZ6qMu106ZUNWJyHDM74Ra/3
+LEOC5hkbBsbN7E2iuYD8+Snc3WE27C7YxjFUFjnFqMxebATE5SgUvMb3VH5lYucu
+ayMrlX+f0ZiRtInzLsSmTxP9bgH3SLG9JVdGX5HEqD+R9elM
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.04.62-54-r0.key b/Firmware_Keys/WAVE2/21.04.62-54-r0.key
new file mode 100644
index 0000000..5aef116
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.04.62-54-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAxKZiNPNvEbZSV7zGV0Iy+At8GJjzRk1Pgw3c8ZaFFNWC3ggc
+0cxpD+/JrNXZvxVjrysMNoWhDv2vfTw5dC9zAyqlBGUqiq7qEDCzLSXgcJNZM1tH
+bkY0ZqaxuO6uKg19Sqb9kiTKLYFm3jhSBb8ErwBXL7SxxQBKWLK4HO4JCUTQfb5r
+HvO/VIdalxxu8LUuD4sDr2yAJzui6aYGlCh71YhLrKM81wmtgq7USBVlUdocgFkm
+4W9T2L0f413L5vRR+rPHb64pAK3vGio3WSk2k955kPTtXANmCcHhJXrurpzn5ERV
+S0uvXwSff1gQd0182FY7mBBSNrL9kDjCrqZ1UwIDAQABAoIBAEzW1rjqBhRdsX8m
+/DlMXK4fjrXtzeFChDcpS5P6xLWHWEN52AkCXmsjvyIRzaukp/biUztaq7w31EKT
+LcAAamhqWWCGR0E5Z6w720dg7XoPmWM/34FvXTpfGEKywMsdyj9JUPux9G4jihZ6
+21HzedkHwQmbCXt4yZQvAVIMkOtVj8cwIQ0U46AAGV3ouSSQH6KvRVL08DpjO8WF
+b4jUMLlF1Jwlg+VOzAcHKs8QIT9e/B5bR66jnmln/0X3W2LtFl70iSdKVXAZ3f6a
+iFHzmH2W5mCG3A2YXsLvN2rtPsWHbEpaJhk6/VFVOmGvvqva16AcSzeTR2SpB8D3
+HeRv5wECgYEA+2XYZiw96JsFRtyllWACtUNm/oj6z1wZ01a26vk80+TBk43p5YSH
+JE5FMCKYXzGsHYivbphtB3ZEWfjHETLWnBFZxBxP1AJUl668SqMxZHG2+NSVFzsV
+QBPYDXUQ9Z6vpx+B4+doID0MYWvdNaa7Ri7O9TPkcH117L33Z6JYIgMCgYEAyD/3
+iA4VFPnuRQNM89L72NG/+KbcgWACzIcBc5hS99xlppXyCv94C77lvnnVJz2HNpOe
+yGvD3gyDuQ+NCe+c256LwaC/2q/6/XFsGJJ//m1/MiBKb/S9ZmMt8S2wLInTpI9F
+mPGseIlaGEI+eFRa1gXcQVBuwEttufLRAI+RJnECgYA9iGMcNw38Jh13h8A7vKFN
+Dq9h89M39/oWQW5KOzEJSD+dRyoN1I9jcoj6zCzxd+4B2JfgAQ0Gu4rlXsAS1Je0
+4YZQOwHLCbr82Xca6bDIPhEj/Jx1cC+2XGUQfivlgq7JwCuBxf01jtu96LHfVO0X
+s5NSbx4l7n9zr9ejlRfvUwKBgC97m4JTdIRIz0rmAXU/biB3fAHF7ztuPLuqt5ll
+YScMx728iGw7L4f5eBi2YuivGkTCtD/p7cPVS9ax7UuR2avp6FG9gECmweke3/bj
+ph36cNK9/WiWq+J/WgF6R/AHrnuyzVn61F6wkwB1lMKLng5pzVRfciN+v0H8Zbqw
+UEbBAoGBAIB5Ef/GhN4p9Ygk98CKlGnmkNaeTspmUgXNIkkeH9Dzc6a5HzYLj/oO
+0IAbC/ikUiz3D8++zFb2PzzGVzbAHzJFgcza9+OaZJ0FRrog1JEe1ixNeu6wHSXJ
+hPUgFFmQlPi+SbY7f4cJ3UqChzZNpV8YSh4rWtua8V3qKjHMbtYi
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.05.65-32-r0.key b/Firmware_Keys/WAVE2/21.05.65-32-r0.key
new file mode 100644
index 0000000..97b7dde
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.65-32-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA62XfOif/d8KFYDRfv6k9fvM2AWZ3MtkvITbULn7thqTiQR0j
+AAQQpynljI9bP9lOeC9ISf+clD9j6ZCHWdn+zXWNsAQEad+Y9NTNT3D6QNAWTLgC
+KYmA8zdRs76QHEaiwH+RL1k4M9FgFePk421NFGek2Kg/NPMJj+CiPRTAUBFWLTe4
+h6iBWZu/ki7OT4HVFYTTjascpLtSk2o3WXjUNRTuxvWd+dhPh0JIQwCUHbNy0tAt
+wTXdxC1znCTetiVt04Z8ZQHs5qDF/gupHXwxgXaWVINBhSfXGP4S1qfhp6ScK0uD
+ehMDLHrcBuMH1EARcamWLqt0eMhFUkkzh/IejwIDAQABAoIBAAuTk/nRM8AZAeQs
+TzUmxo5yuYoyFtSaV7YDc0XiGh5QB4x6OVlr2cHOzqot9qfaMQC6Go0BFBs6TtiS
+sgVaMiy6hkBMwkbOp0ALIxmwDa6YTTBysDCIwZ20b8EuMvohAyoCXAp/EcOCnX4W
+GhCRNIQ3YKUDCTC6bxLzUic82QRW7cPJdVmbtEuUiZKSqnMgP/+YO5rJTLg9cz6B
+bb9iY256JW3nroM2eT4dm2JzNHQTTs1txq2VKahinI/14h1VR88skiJvhREAsnBm
+7jWBfeIQ0ar9wFsC9GUbRiOMBtonRylEDFjtDeJszfDbx9els0ufdzcTM65VDpin
+PXrZtkkCgYEA/ohl1pOINGkli4ZR7MPf2Ooia9oH9DQSVsRHX9dwBTK5RQs8Y5jH
+nUOWEyradBy9RV6byFQnyq6xSmsTthyeiXrx+3619Y5HmNCmEH60buCk+5hhYWUx
+Pj3Adoc5xmhFuVbGOQ4MN0cd9jwGL1FrsVCR99cUqxhbhgl1BkZxQs0CgYEA7ME8
+3N1ntwizblaqhWyZjkB+gdUVp5AuEX8tTm2cPmEmiEohkJFwSvWvbJxZ//i4T94d
+/RtqHSC+F1qnCQyWm42Hc99p81UH9v+yHgbG2wxPXKLrhLiFndsHV0z0Y6wtnXID
+DsXUNxZQ3/ECwdb7OIxC1z/3J0yCRzXwC7rGvssCgYAQP/UAdfrEHdJfzft8+iRY
+XNpFuG25kXl6QJ2t6LsmGc7qMYVxdleIGsCCCMJZl1weCaQ4beb8cZqv/ZYMklcs
+v8SjIbvMKYE4qFlxxCUQzxa5WUkeRq+WIasf5hIyMIYDBx8wlU0CWm/3QG3Ep5YQ
+g+xNvlV7dtqg/AmUlPq2IQKBgArOGuf9ltEsrXu4qtmiBjQOz3c/cViPZPrZcgjl
+Sb8zEd4ge/2sFZLmOZZcYGMlR8wlV/sIOESSDPrl4T+xemIpCGiKZrx7QfzM2KU0
+K/ktS6XvrY4GGdsFdwVN9s1hu0c3P9p5vuCwvQorZrPQCvEevaIzQiViAYQcexMd
++BoXAoGBAIZUtRkZtx95mEoKB4PD6nxw2qOhnDJDf5/4NoOa9aILCqCi6l90PSYk
+maxervKt1sn5SaYq9oKFJkEQEnkqkulMKpes/xBKHc1hInnntqsGtt8htFQfCjXW
+TzrGoqQ79MgCZ6a3FIgQgS9Ws4Eq1WNiv9tvcrZTCeSV1HiQ9Ib3
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.05.68-24-r0.key b/Firmware_Keys/WAVE2/21.05.68-24-r0.key
new file mode 100644
index 0000000..f3c096e
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.68-24-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAyGCBTPkyIKvJ4KRceYArpU1JhupShPDEC4WIc3sELtFKi5v4
+NamvlRrdrD6DYR19cjl3yaW2UZPkvyonqIhTe+ffcYsyUUDV1CZpjTMh+0dkMfZP
+YhpJ8M//SaJX8O/6+IPBn7/NXPedMT1XLwr50ZknTo+8jg8hi0Bl06Bh8sbIpUFs
+2PhUBbYwzPgPuNDCun9RyF0Hyc2H5eGbpX8AnTqBC3qFnF+JXfuk4F7DEbKqXEZZ
+pQowEosVbYpNhA62bw4mZsJHFITbtw5demWG4BISqb7K5VUeFMm0OD36/gG45abx
+R+fKHE7wo+L2CH+s6al73vn+1vHkw9C7/7kyrwIDAQABAoIBAQCCICnYEvy6utUf
+TZ3ASbwOXWKiewmby7+Eu/MhC4Jr5P7EK0XFk6yy5/+NHAu1xbDxvOBN04/S6nhi
+rL2UdPPCQ5KX6g2DNtemLkvdppcq1/H5gDuNOgVKncjryMHTdgVF3kqfs69p8GPk
+1jEIG9ighRVBr5aDqs/d3rRB+qWhQs7avf8ejXng7UG2lCKWipC2nKOZUpUXYZmN
+SjOefWSS48xDosl1WYOYaY0G2e//JpHA7mABUVAzkYH9p72OtsXqydUx9HhxqaM+
+Gazg2+eQmK3J18XTN/kIHg4Ym4g5Nj57CwQwze+UB3INl4Ulge13s17ZWMjHKCS/
+JQyEi0gBAoGBAPqy6XTXVdFkrGoKK2pU3RjISuQ+CybWjfPV+is5u5Ny/fclRs+G
+OL8wi+24v3+7ICtpMq9UBoY/L/HLIVvTd+qVRoiqnGgiSgLLPH6V/mbjhB7Ll207
+tdoQ2PLMwuOqNyyfHSDEeD1Y0O4XamszXMhaIQ1TXDf7X7UFp9QdmfPxAoGBAMyd
+MIwLkWzKw4FAjPnTUb5Xj+QrSw4fkzSxwheihKi8eMpV8WtCNjsOXiq8wM9QRvEL
+trD1e0gECyE7wki/rDrnKKB0fJ4LDCQigMUh8akmg5F+pk8pDtTCvjEdd9BelFF2
+/Im0mhX9rPBUNXI2fT6uIeVsGYeIH/k6DwsMtbCfAoGBANkgxbPNoOUnVXDN+AYz
+E/8X0k1WMyBjKTTrua1gZkZxjOZV4btxG4rzh+3PWgRN1LHkfeJ+WtxAs8yuSukW
+AUEqIpnRcn96WzGKRo24aUtBeDeXy0HvOjRw7QV1NMIrtXevI3Iy15UCbIoZu7C3
+Hn/kF8ZL0Y4m6CCHknDTZnhxAoGAcWuQxZCEBDJBPRxzCOjCnygacvgsmp+WEdeX
+J1LHBmGy8zXApRwGw6WrPTV0C3cMXAGKO31X4Qucv8dIYtsctWn9czQe/9xP1pfp
+mVy/gGwA8l2qAqdXuUhZ9Q/IopBK1v2F7y9VWmtLucxz8+OQeXY9A9dwL1idoKE2
+RYG+FTECgYEAyUTuIlo2zk25ITKbsoUFq2VCYcsGm140k2UV/GUAFEfECgrP+d23
+6KTQhdDNHAbT/z2j53DIgLuQfVx3hwHjvcMsyVmFTH2S5yAJQhvzxKuv1Q5F9WgC
+neY0vREZbdPL5X7BaE64dBxovxZkvpeuXJQ8njkUwLQtXD8HqHjL0Hc=
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.05.78-22-r0.key b/Firmware_Keys/WAVE2/21.05.78-22-r0.key
new file mode 100644
index 0000000..8a2b045
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.78-22-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA3tWnijKp7+I9yp0zYVgwytR8bLZSwzLJu3uDXoxJOc/x2Gm4
+xPJAO+aFaXDSLR+hinkfdZDC97kIzB+vfRgz4oLY735VXc69dQKnp+WwzqvTQ6E6
+ER95V4q50mYXTbEOele/H2/z0mL1IjXo1Mt+tz/Eu10Y4+3JIrFQyWiBF0CQECaS
+a1YTlQBdHajVIlLtp9fp0+iw59CNIxzHHpflMzC4xu8/dDJDyVXcWyr+U/oKFumB
+fMvXqt+YVsQJhFY8tZLymg4HOn10rOgLEJEVFp9eY3Fe6nrA6JnBVrW88cuIfAgN
+pusnLgibxucYO6yQW6HFAc8rldrwhP8+LzmD5QIDAQABAoIBAQClAwxdL2VeSWg+
+qSiKNndzS+ST0HP7Lpnqpu1CT5pOIGnUO33jAg2FDhDPYweQ+LJ0S3t7YOav8SrN
+lc0rUofhfcnNl/z5SYZMptmmYFYMxXrdwv+v/GGr7QPsBUPOeYXiHSZfzlR9AGDM
+o6U2Jzc/1g4GPUuYRdbDRRExBJ1LrFav5y7EEQx19y7Kt1KZ/kTispxN86rXLI1a
+Rk65S+xhBD4wQKIoBTCjo7BzC5AlVKFy7GK0BjT3Dp93xlUDpZM48sqk0XnaXiXj
+r4nDpyGruUIzL8ewsFJjYv3m7W3O6a3cmXF1e7e2/fVEKjC7aahBtBkcp5NqZ5uz
+/ctjRmKlAoGBAPl2bS3n72zcsFnW5nRnL0AGWKXvgLQIgGuGWDdwsAytjmjMt74G
+plWrPigmjpVIecEkBMtpP0USUmDlQgA0MX5eaRpFHjtJe7LOxvA2XKqN8HUxSkwW
+gwfwUlapYvWSnXVa0ZceCh7DvCmPdLs43J/ws0v7p+GMDzt836wAW7pfAoGBAOSs
+lpRbJLCsfOjP91ZDh6fSwe4tFcMzqcLOXBRqa1+y7U+cXuA4mub/Sk5rwWsnzXQr
+R010nqfDVB9p7HBoSLQoMemiwgGcIegs618gGqK37n2a5zyE2nz6ooenJl7BsWLO
+jASBf5eop+cCXhOIWgC96mbExZHiMkNCAMdq9HA7AoGAczaa3iTMk36phBSYgxJU
+5EEKGDkxO/ThOsflXlWROYm+x/AkvILdt5tLLcgA+jlq4iT8geWt7vyzR0Ua4nU4
+lqCL8jIR8FfT5ZVSlAbHbY34jGejZNjQ043OuW+p4LlCN70mJ6EcE3FbKeazhvSQ
+EN5eMK2dr7G8J0FZHFteAgkCgYA1kRhU+GTH3iAEiXLvCjKk5YH4QSdv6pJByAVZ
+4vP0Hv3oQEEZVSk0I2lMpYFRkKlYJSs2wbLIqcDy+uUgD824JhJLII1Bw0lOEfew
++NxEccG0Oq0gSB7GWA/qpwUd/VGIS8oQ5CT3adKrEqrm+HHc6qAWItIFMm+Dwdpc
+3HkWMQKBgGZFcFEwnpn3dpK+h0EdFwlJTeumF/BgzuwIWSyEi7FPpCEeujKPFCCD
+hgKIsoxh3v81j5d5oJXHDTWfQgWrhAvn9JZXFSJ1JFi5Hq/zDbHUTYOS3Hrjxoan
+ComQbeGMhh4USRPaeGqs+kEsexk5yFqnJ8CRnQ65sdl0PufO3QdL
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.05.82-12-r0.key b/Firmware_Keys/WAVE2/21.05.82-12-r0.key
new file mode 100644
index 0000000..39c7048
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.82-12-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA3foGlP6OD4rDvC2s8+CRlLxutSRrIup59A/9kfsBWFVz/R9P
+gn+1c6ArojSjZhNBQtU1Qr/v82RnaJd1AlrVShCNfuq2ohWXjoebnIjFYcPnRFgl
+RawwtLLcqHgYdsrzadBKOIkeG/wNbPApYJinf9uJ3GmQ3xOKGk3JbrpS2TuctzeJ
+9lvyngCl2JFsgKWuh3EoWsPtMPmIPBk5dNQxwqhjzG7VPKlGRMfbdvhJ5+Dn/UxC
+SgCCdrtJ4LUheW+mhGzi7cIisw7v5sDA/Im0s7c8GVT95noYRC3H57vkKhkyKmEH
+7hi7xouqxlCbZ/hTzoN/PtVdwvYLC0r9QMI+PwIDAQABAoIBAGlLAzpDsUFAEm69
+v8+DE6tY4q68ErHiRWz29NH9HXs4Nae45W9CguDQ9kGf9G4j7g30sqnx/7EVTFP5
+nAA88/WI+oVccrtZwKVUQAU1f2NLmPT7VtrAve3I9hBXv0sCJApqSfqdWBHwMrId
+DZOLddCZY8CQtq6KRzUI9ua2LTxrP0tNayryqgNHo9FaTrx0oOkabkA8Qrnl1Mp8
+ScfMU0CbAbfPRfnffNnEZjuG3EFZKUqeN+6LtcFhXvDzVZxOvP09Nn+yVQxjmA0T
+n1+MF3S01lJYzRayJJezgocGNay9txfCTpk18V9ISLejK4C9T75+c3ewAbrKaTjH
+vTtIViECgYEA86Vb3RkZyh4c+AAFtzFY4OYQzmISAGnDmz8QcxmkgdzsYvTdewv7
+dYJhsCz3vECH08iVnsy8Qb6dTPmP2DlEDeQMdoCuxx8XsZ9J9gbQgB8g1NBolJVE
+KK+PuXz/WwiHR6I1U7UQPXzMi/JApVbVnbySv8yAWYFQtKOIBIO8Xc8CgYEA6Ttj
+q/Bfhj0OrmOy7jtRqsYmnxtNZJZSyJh1y5F2RLpw7CyAz19RY3zYOSQQHoNXYJQk
+5FM2shKV1jZjaguSHnHUvpILMNUoGP52v3h/ubM6NGZJzwPKv1EXBqFpFcrzl6Bx
+roL+vQMJLWembdpy5BauoTTrjm6wnG8Mw9QgJJECgYEAwM9wNjUB8rAH7r5dx442
+rquCS0DSzB7mm/m5M8zsIZTKQLlUeGaQFXsbgYbkecZ7dr66oNOWe1S0ONEZ41vW
+HkQFFNZa+dsCLh9HMXpND8cSfTd8O3EwYh4k1/4yOkEyhR65oseb1Xzohissu2tP
+Wyd63mugerRaQMlU/3Wc4IMCgYB1gtLJQqcef4zyGJGCrqiLHqM+7wajc4nqP8a5
+9mRcZIOYuyN7WE8tjS10PNNSTGKt6nZcBAE+31ZXQ7f7KjFI3ZmPGw5AYGV/klZK
+SnAwJDljRVZS01pH4pdzY8gKjuMEtnYQszeeC/WHxv13w+S3PyZlWsCEVwjtCJap
+5Cr9wQKBgBndLyMQgSbQy0PvhcEbJ+yliAWiJwAgFuC0h8daAQFDDhxoZRNojNdJ
+mzGg6Q04GAvHq5spTE0Q64DsBmKkFKNdQbVMpiCs/hEX1ApJ/ZpK8NRBbBzhLnME
+7UmqKJejMVFV/8+pNpAlIwVXI//pCrnjgOQ9vFHHknw88/5YQ/u+
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.05.90-42-r0.key b/Firmware_Keys/WAVE2/21.05.90-42-r0.key
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.90-42-r0.key
diff --git a/Firmware_Keys/WAVE2/21.05.90-42-r1.key b/Firmware_Keys/WAVE2/21.05.90-42-r1.key
new file mode 100644
index 0000000..0dbcfba
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.05.90-42-r1.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAwLv3JJKGK22eKD5tSvUDps0DP7ZMYxm/RZQMPmGJsGbyEy3H
+TpRZl8C9r5+e5sXOoOF5mCkFTYNjCd1OWKSrIcWPUmrTcDgrd4F+fQEf5SkdXTn9
+hJhuomfzSH6aAID4R+UCyOTbVPw5KTNBO+1Kay01Ox80IAvV3TlnUuqUDMmJ19Uf
+8+hjhPBrglhW2iOgu62AWJG8efNPVHWGvPuYK/JX9HVzVtTB1b9LREBjX6NsW0M0
+ZKxeRoHjKZN7rU29RmKJeWnjEW/MW5Ockx2pigHA6ASv4N/53g84lXRDofb5jgIC
+sbstArjMxHMtfNVDjzAic1qp1LJNuc4SnmECzQIDAQABAoIBACFDj7kZLNzr82MA
+uz43oWS1d30UioSEGhX5Ik/V57yxV9Blk0OFqRze4B4ij3tG4o2zvJe9ZLPnHD3E
+m1QDP6H5he30j/+LQj1C9UC/4/BaMz421wF+iYGwLTXy28OAftlxthRUI2K8kWUB
++p1MLA7pY4mLriRlxoiC8slFwT2fclbd25Y3g8bTx3gZQJl9uaYsAvpyGrPZcMPv
+b/zLE7FISXhJB4yvM6zZTyPa9Q4l0b/X0uQ3bxxyRjQqYRKe7zFJgsgb0DUhtgly
+no1j/ux7y4gKw/D0FOAQFd7Um9IVTmvSswN0MZcpcYMOpDlt/LuliD7tU+W+7uTe
+eRwMZ4ECgYEA5s+bhlxbgYFl+yQHMwxI3iNIdVApcSrkqirxwJl16SIHfmBr6XV8
+ME2qdqVYB9TSTvcPolkN+PR+GTe80s+6SwH92gP3IN4pSNdVJIbvBXa0bijzNLzf
+Ue6uzDQcXqwYss970DWoNS6gDVGLisEtwISJ9qTRwKAd/VhKFePkp+0CgYEA1cSS
+LLQn6v3HineDe2vwAlq0jIFDzoMtaXLAAG+LYFBIiGdqqOqV9pYGB2e0NqvF6fRh
+3FNP65qLWEXLCyjxcdrRXeBDBM9acw8U5HVpl6OdiJ2+/BYVNeKLcywIPBTIJxP1
+3w57MPfmqzQpwy/YtkSbFV4DlbvcEXdTSCbiqmECgYBptF6ntBh8QQSxdZiOemvM
+wB/pCiNQnrJGdJBvAlkLwffomsQRESsk/Ay7dZHRVFhUrbVNRretcltltS8W5OeO
+foUBmZtORDBoGaX2qo1A1VJguQRY/L7RyRvojV0IxowxJ/CuNESqxoWqU9QyYbJQ
+XuLIQEeHjkztv8d+KvaHKQKBgDyzrxaGqfcuzWTifzGi+uqQO0jSxCB2W4TgEumM
+wzU8Vvx08XK5+o+lFl0v85q6uF6xCMD532312q/cUcX/gGBmVKGltyI8h2C43aPq
+O2vWCDvtH3iSBL/ibtrrnAMDm7qNDnqisBS9sIDZNSq6AX3wiWFN6xKv39QN4FZS
+xHbBAoGAfOHmXsKRB+XIZ9IRGKsGaPTRGE5z4Q4AULDLZlJS/G1IRxb3YT0eXqEI
+G+dLhvKoDVetvqYhqs1E5z3LsnQ5YvdyTFlKcYCd/ffuKZvfasL3PgfgfEGlCWOk
+cVgFg8F/+ycJaT3jsutKR52L9IR4g8udfZOX3sX2CjNpEImI4PY=
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.06.47-34-r0.key b/Firmware_Keys/WAVE2/21.06.47-34-r0.key
new file mode 100644
index 0000000..10c650b
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.06.47-34-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAzj58+s4+6MG0HJPqezW4ir8MrJbX5mFVWZUU0JUjZaDO1lhb
+1KaYnaR13/n5b+n/0vMWel3BHLpCiKNv0RcUrljL8fEZFOpyaCcldD2dg8EoDRBR
+/Tax7Y9PNwEcqrt1xeDNoEDNsWwyDByzCSEE568KcBBd4UTgMLSli7IniDsKOTIM
+e4cIajqN2r7A7ydGQX7INHEJueo5CvFDIxiqGUqIPYtQD0uIPB6bDY0cqysleu7n
+9Pg8JYwQWF+Bu6jly47isiiVwoqaEKef9Al/eSxwqjprNII28RaTqiFrMD3nRuE3
+MQs37aaa/eDQ1FQ5BBW/70Ps6wX6GWdNGkiCkQIDAQABAoIBAQCtU5yrFsuNxsR8
+Q98KfuJBUD/xh6+YAHK/H2fnx36A+Tz6rDU4qG2YBk+91JHJeOkzOnHIkqQpZWtm
+85uUKAaMYzm6cbl3d3SAjW2Pm/yVbq4fFHkjCWVM1WRoQHn8DiDzFHMa23tCQUBq
+J3BbGrHJl7R463hKShzzMc3ycd2BQUJB15UBTNE99r2r2hx3SN+aJtmx/MsbaY+d
+IO83V9HbIpFHPBvrBzRnl4VGQlQTe9wyvzkfKGRmeRmHz5b/oOcAIU8LrDBTXDSj
+gQvR83W2lIptjJuoeGxWfWEolXMVIYQpDfGTZwO5pnOqEa+DAxfRUHImwgjm8N3f
+FlXiIXoFAoGBAPBYShlwSZwZCBX9THqZBXJH8nQ8CwmCU6a6cmdh3dCyagWY0a8j
+J3PbquLooW71b/WCC0zloo70OqjD1jU6ekKhkW2jhpglfl3WFKYNV0ZEAfRBbSs7
+FL9TFh8Gcdn7vXDNrts31VytNBDnEehzzzeL+npvl9AjhjURiUFI79bjAoGBANut
+kujbH9AF9GxajdJ7dX5E/jXWe+zaOq4BFf4PiQOtDRVFechN+0ghBBVWohub5c+2
+ktUsLGF6CyPkKUtkiWpPHy6/EjtEY34uYQ80AEUuS4PQM6xQqV8/eKaf4+MXbiEr
+g3lR0CzlZpxv56RSZWBq2o8wEbOW84/8zwh7oob7AoGAfI2UoQhC7WU/fn3NI3+n
+hejpKflv0ta6WR4oaZEbLas4LHxctgFm0bDWJ09dUa5Z/gYNqyUaEDFbMNiEawNK
+Fru6LPJgrvpHOYPXIZKqVtypkpZRZ+TvRJNfVGa3m7rNGudMpYiSxrtvzw6ghjF2
+AphFDyxDpXazd08GLVIKEPcCgYAztR15VeqdCmnH/2CWhJzZReAYSA4PaCabwoGs
+tXdouBj2Qs4xibl19t+BLk0l9oIXbEAPkUA5CYMJxbC6oEWAEnOiizL9ZFGO59fM
+vk65+fWoZx9ilfHoC4aYodYAJAm2IQnnSoyXpL+MXwLFOOfH1B7xyTzBauyVncoV
+kxRkdQKBgQCOdodsCUIbi1dbLmcty91QVCM62VBNjLj2T6nFSlD6q8mVQZgmK20Z
+jBgI9UjY90BTBPS8QoZLXi5MWs+P5BqCdaf7sp5aez1D9svfOQjMlWgItfPT+ohU
+BHv5D7QNfnTeg/3sehuCSReyD8XGu4IVzmlm81NDuWzLx9QdUebjCQ==
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.07.16-32-r0.key b/Firmware_Keys/WAVE2/21.07.16-32-r0.key
new file mode 100644
index 0000000..3688650
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.07.16-32-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA5w9bM3QCntEIu0LlYP5PgOxPcgONmBeaejHvviK2YSA4hfKJ
+UgKhL/AWKhNDIpl5aKrYiGx/OMoVS5wOx64F9r/kdvg1Du7zrvltnqLOoOI1OlRu
+vMe55vmyWel2DYYXkyJALJ8uvQAOptlUC5vS3eR7flyuTP8LjaaqaE8CObNMINvh
+N6JfP9KsSfTC7VZfQ+XOg8QRtoceGHAw/iMdhTIWrcCTdnT9z+OsNr01V+4fPnX4
+u5qJVvhy3GBCcA/q2xAyZyio5rSb5IAQ39L+8kpfUiKBAUwGOQOc49Lqn+K35bMR
++D5jus8EHKp3Yhh9X3fbdyj0LyOB9rbvaZe4/QIDAQABAoIBAFzLfgUcAjFmIeuS
+4iwh9iwAu6c+Zg8+63tHstDZgAVhu1GQJjYZeEKYWU5sjfnHSUsP0gZ4DF/ySLsk
+4YqwCRUf29ErvaNRs+wBoFSlbfaO4nGalx6Z1787aLVTXWXxBGbCyqMhCtQ8waWg
+gnBnFDipGi+VaSrjAvDQjn91u58P75ijet5MjUbYhNlv/yEPWgBImqRigtNIAwHR
++wK8Nep9HWuOONIF6nkPsB5+8b6sWLyHv3QrY/CXpxC4GldoSm+EngUz8/2TrxqW
+ThzgYrFZ6Q196+MtbV+X94hOzSyR63WJ3ikXrO90sgz+JfR+BLhn2ow+cDHEXtz5
+dG/QBAECgYEA8+o4mCQTe4qP2yCYFIRr+0WEVpwtMG+fFFZzNNU7iNsqHgOd4bsI
+4ltYMwnLAqTdkJ3aoi+veF0Zl7DGNGUK9WQ1J9KU3sAD6lmhAtUHyKx+6cRFCLNT
+ve9+GgUcYpcdLFOT15jpQr6GYCgdnJED+SfJaj9Hs3JyixLxuuAC/U0CgYEA8oIV
+yjnsxfN0MQGhifvWrKxXjs9+2AnzzeciNbHIXzhllFvmRRrU4Cw8o4XQ5HG4trEZ
+Ht+JuRaMTSkesZuRUB3ZMqK4RYudbbUl7zKl3dygZ/FlZK90dtj0PtwpU/IPO4IK
+foGrITo0tL8DkQaTalJTh5aRJEGMit/MgXsQknECgYEAzd34WmDImNMATACcm2SR
+BwlLgxZaBbGQYMf+gK8giogAaki/LtB/1R0nuhwf3mFsKC0zZQQ+Y6agfSlUgNBv
+iWJEgxH3WHJUW62+efd3lGYS0Bc59Pf2TC8hDbEWnhfRJaJ8+9Exv4WzQOFa7NRw
+uBBerXAvgkOsbblVkVaU71kCgYANUUV/EIVHLaJw2oUTfcgBPYmlZxGxLYK9CPdg
++X1mdUNmzVEs9FdCZEuEM2IQWYpqRfl6L45xoqJbzmlIGaH2Q11dIYB7GTqw/qSx
+qRdgwq/wZVpLGDOOH0XyecavPHjHrNGEtvw92+NvFZpNiY3o5dJ+fK9FzW+5ZKbn
+aWm0kQKBgHgHpc9Sqk4xGomLcbL+HR2vdJk4quWWrqf8BY3kOs/K/ebGQv3Ccpbg
+SKwz5S+82Km+bloB8M0n2PrKk1H2rXV4UGeSFZtNyJ2r6/D4eyCgpq/N7XanaJZb
+TajbjcyNdnNizP67oPIXuXENrAiDrmcCca/9IyXONeU27Fyv9E0S
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.07.67-32-r1.key b/Firmware_Keys/WAVE2/21.07.67-32-r1.key
new file mode 100644
index 0000000..1bec3eb
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.07.67-32-r1.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAwntlp0+0l3QitX1cL1Mtubit83ida8K2hJ7y2QTVVsAQCpoV
+tl/WXRLx1XHgpUfRzT556xU/B7//KjzdO2x4b6a6wQZJHdgB0lwYYUfl0KgCnJjj
+9XbsYb1ypQDZbAlAoDz/0XK6r7xKmW+BWnNocg33T/32nHpN8Svle9GtKvrGVR1d
+gRLNedckn9XmENe3cjFIIc7wOkxXPQLJooJ0OW+b6E9G/HczmR1QTCR6d5t5NbwS
+0y0LeUUfjUNb19CkQkDx/K/C8JnIrvAy8nx4T7T5WNq0BQVVrdXlM6tm4yISkSdB
+vun2EO6oiuG8jTBcC7+GqLygQtLvSdv+Foq//QIDAQABAoIBADGaHVwl5Q53zV5y
+oa9kTJZAtwUQ7z2LxNdgXtng9LSSecTqdb01Bkxox4tD5yLghW8OjzPZEGFeo6rX
+KSm9yZ3YbWtLuhxFenl3ibRODRxBraDZEdMKSNHI6tOQuuNmHLiBtlFqLJkjsfce
+TGSQaMQmMbySLnLMctKe+oGxAbSjHMHjrk3eMFJB5UVUJyVGlfRPi6RAdUdnzrHf
+IK1uW4+Ay7oYStKtAuU/UowEucr+3e+hWIGlJr7P3T9sqwy946R+dMfVnw8ajhKQ
+r9TIUeQbkKtj2ZaBmSvEhxNoQfXJbfcm208Kw18+1MASdw8imQHykk/1Eg0RkIzJ
+QHibsrUCgYEA94Yhuv6acjSvTp5e0tQwSJVZJkH+Z1b9Dv0twKNk3q0coDb5mVbH
+39uQufJROGezE9xWY8QxIj8NgKIid9QyX858Ivsi/b5h6BHIPG69KExKmKaYg6XI
+CAUzOS8MigvImZUJPYWw4qPUlyzDZXQZzJ7A6I5bh5BqQwlEWbQ/AHsCgYEAySRI
+txXcGqGseeT00vtCttj2Nn3+D1CdnrIHI6rwyUVgfO1jBPonIdaaJQ5oOGb7azzz
+rCn9mudxSHUjdNjrWEewY4RO5Z+bq8nhnMYADniuE3XkUfA2xL9C3CvWspmjFUV/
+N6uNfTIKtNUWMLkoFD/ds06ZfQMJN3cyCNs5o+cCgYAY/siFM5SxF7TkQYXd0GOX
+0M0R2fQwx04Cp3ppS5ayDdUoMKT/4Q2KA4gX3upowcAJr2Rh6rvzc16PsM++PgVg
+O1+5wJaF/SWx46nOwHgFi760r44TLTiH5s6HZcLkZdA6AhzOw6NbH6QmJ/ULV7AL
+Q7TDRyzjAahZYKQwUs1R5QKBgQC0AsEA+ZNOUjqlrH5fA3clZO6UvhVNZ3xotjMl
+fKqZtnkv1NO1dJro8cJqP4aOU7vWsWnyPnI028TKb+sXe7rD+wSlS5fAcSNEjxxW
+zeznBqHj0LJRkoWxdupDWQiANnd5ZgUAsYui69IhHEMLv+lalf23pzQ+aSUqeoZQ
+3sGrKQKBgCi/dm/9K9mJg17bnhZUCyGzMThPvHcbFaak6M0Yb6bv54TEF0khPQJV
+KiQ6Uc9/PTAKLPnUYkSh76KbOwGT8rCSbYupAyour5XffkmNKzkt9/5xUFI0i1dZ
+d6syJdqVequZkqrOGclbQZY7wtnIjm7xS4GUIKA/Dcg4PPNk3qEo
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.08.22-32-r1.key b/Firmware_Keys/WAVE2/21.08.22-32-r1.key
new file mode 100644
index 0000000..258a4fe
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.08.22-32-r1.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAqkudo2Bryx3Mbw+U9MmKf3Hd9KGmojHsCO1Qk9JCwYEoEBWo
+wn/iLjICEXXktWa5ZbL0PvSILbT0SHBLnfZ7kZBiVrsdGuXk3Gh+ulEaSUUoSyfR
+nnLyvWkYTOVFI5dnZH8zKMWRhHhZ6l4QbiZkPs3YcghvkQRKueiyBs+G3leBkJUG
+jS9iGU603UJHJLQaYxc7v5dGHrCYLxn+eX4XH4fUkSxtJA4nmr1IWS86sqHrm4ca
+1c/j409ae5mip8qKYLMc4PUwOpjEtpPWaMTzKkj8S1JcImWDvRHIjDJMBUDXcd57
+BBWorlUciesCRPfN89c72pWOjafGFwxpf9vnmQIDAQABAoIBAHRB/RNdLxnSdQ9Y
+/uMCeDe7P8DTXtQZ6r7JbJoOEB7UksowTy7BaWMKJtlOt92TjHw+aHpWLGWvxJlz
+eFwVupRMkqYNRbhoPA6wk9uUpLJisThlrbhTVx4yEjHkz4eVxDMal419G3PpSdEz
+eFoKgaNSmjJ3Sdshp/Y1QtxdbwB4dalJkd7VNfMrhI7zKuHzeIe9M4N2+f3qpzOU
+6CxEuA5F7mmPtjGhecv4USpFh5vVhUAUnR0AJmP1TKci4ZRnShg/bcOdUz4k5NJT
+0r0nZtND6uFPe3/Xerwh1H77teOcJcz8dIh+2F2OT6do+KEf12ISipBXHNXYjxJV
+d3oUUvUCgYEA2GyulwmAw67ngJ/ibcI31JlkI4qFFUUPHdqoqm+6uyyci+FxaT+c
+tf2aZUQYO/WiJkQFKS5pmbEVsEnzTjigHe/nMRDhTdp1lDs2z1P2GclbptxWHc9m
+1zUSqmJc8ctv5rbdmrmLCdey8x9dadIPVEcvuuI+zcz5OkoO19UWsMMCgYEAyW+G
+LS9KXjbxslK35zmhLms0iykdiNozAv6EeZKA+n06HYG7askxJqZRs8PpDiUisM75
+ahst2m/cy9GPZIW6RG+wc1tVuGosOW33BMaIXiwsYbMnLOTH/jCHkXcDjRjC0Qlb
+SJ4PjPSWypQhR/zxwNB3tiTFSrNF+X0Zb3QDgHMCgYBQNqfW7vy8ijzfXWLsz0km
+ENwemB6PLZNWu048LUEGUpiK97mzCpKomR/6XGym/HlmuVs4Ui1te0bQmfgFi9M8
+hUgo1VrMIiXmFLRRz4qtMAY6J/v6/H3fUZpjcCWGsKH+3tPvnsk7kqiOl5dluydX
+UzMLjwM7/7Z3ti8eK6pHRQKBgEuRZRrKZPHXVvD5CzjZa9hIK5wRPp06jmyPIw+g
+oHZYSFcNdkvnUmMXfgscce/2in8eBn+B1r/du01TPqINcQV/iQiduRjH6/NXh5Xp
+DPuXQsccOJQk98oqVpGBvnlOUres9OvXMCpHD9LLo3ioMeGN03snbERL4PJptgMT
+2MR1AoGBAJMXIx/6yolVucUIRqSkayGyrBr7CkTIt8K5jN3zSWgH1o5qljwcxbGR
+iDMEyw1UmOerJTOXu74cjLKcoOC9kfpHR8P2m4FTxDNMacchVc23YO+cIFUlA9B3
+F+a4jCqnVwrZ/sZSd11Ao+m2I9+QuLDBvWMllBn9CITeLcNrRqV5
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.08.24-12-r1.key b/Firmware_Keys/WAVE2/21.08.24-12-r1.key
new file mode 100644
index 0000000..ab69160
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.08.24-12-r1.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAralaTJ3ooSP7DIEXwtdrADgewUlmVvV+VE0Vpn0maO0IseNI
+u3DyxoaUnUIqJgndnqeM95sVQnGQGuzWWu4vYdiI0M/IioSokxVG2VCx+gq6uJon
+LvwwEmIuSFbbn1Vw6n5OittBMGL+Q8A1N7gvIa5bHBleZCWZPrBt1jom42W/Sy7n
+JJvP5dzUR/M2DKCKq9F9JHARhNPPFDqnB5h2qwk8W88CWJADKchdtsCyAPdI1L68
+qZHnoFkmYdGmPgiMitAYkuldbVF9C53V1qQB1KlOqrrhvS1Q8TYJF+KTyR82HfdN
+A+9f2InSQ7godepyd7aKoouZrOSwVRn+mdSEowIDAQABAoIBAD3Ss23hLWboa0BZ
+WL8pd1M9p11CJye//7g9NP7vQNRLxjOl6UepfxRD5vZRDrY5/uazWVDwqdHcoeOj
++u+mKcIYlyRXRFpjvauXAIDu5F1SooSDhH2KlAaHY1ina0o+3ZLtYkK2qW9zXnd6
+Hrf2XvkLnC3Vri/S3spdfsysKRn8kcu8T2y2+10osDD7s425oyzS+7FXRSkAw7HS
+3K51zWceLsceINe9gZXof9cRE8xfHV0AZMT8VS212sRLk4hLkhZoDcb/a1QtmWy3
+pOC6KhIMKNJ5ZQAvPsmPQJ7NaKiBwKhxy55XvNe6Rg3YpQhVVPPYkeDCwT9HJK41
+fBoBCYECgYEA08mr45n1naDWnp1tq24aKcyuXbE9tuVAbAN2vt7P11IisrORKysR
+n8QFmeg4m52F4qB+QKauUraA6+v21qbjSjpOs7ivP2GZ9eyyZW39sCRPYyQWlPTg
+anBsnCWndHug1e41D2pbwKSq8gc0UR3cxyNwxGNM+YAg1Dz6pKrHw+MCgYEA0eol
+BXvEGHuOoJBlsX1+2jNku55O41aITtvORTa5db2F7P/ICjks9SQZq4eB4OR4SCvI
+pR8FfCix5WZTKNIF4mdkgFO8D7hWZHSBL4Ng1+Fq+QazI/rvlyFFQnAj7qmU4OoA
+XcqyXWf/8xMsgE9kXvr7vuy8OmSy3+5FfQePmEECgYEAiNJZ9NFLB0mYPaKQ7lZU
+Grr7ztWpfBYBF4bpWQgTGBUdC3vMhint2dxGjhajM42BqFZtGhFUv2TeRwwLTMNG
+RXcDz0G6HeVNFL6UxchYQ0pB61euKw9ESB9XW01MMImJ74tTxiC9I+h985xJ5Tm4
+nwI7YPSSDwICs3qtpmIaamcCgYEAgEUy0DH79vXxhr4V1iqYjF9hS6CGFjc3XfDF
+D9hL5d2k69i09UJQ7Y9cvEs2myUhNwDCP9w/7smzQzmO0V/dRqbla+E/BuAeso3a
+rxz53ZEaXAezCeZ554DmIJ4D5v/rQLDc/nMxIRC+/1sVE2bwL3XwxY9FyezkvR+N
+iMRJA8ECgYAbmM1RgW/ynkxptRR+2qoOQCk5ULkhyjlkqua2sv/auM5HpPie9ihQ
+EULLoVPdhMyqm4vUkN763XIWeWCYwaBsLELKy5Y1PH7mUT1R8TgP1qZYPY2I1lcB
+M5EzipYf/fEwOmxhcrofJW9ni5NjJAktYmLTIzL10PhNEK0bTz6wDQ==
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE2/21.08.25-12-r0.key b/Firmware_Keys/WAVE2/21.08.25-12-r0.key
new file mode 100644
index 0000000..599d817
--- /dev/null
+++ b/Firmware_Keys/WAVE2/21.08.25-12-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAt5bSdPmFaWAARTjzKw64B323HZ0GORIZhFG7NQuJHtrSzjv0
+Xwt9zaBOSd/pBKk27hWq8z2LnLF0lCkaa5ScRxdSELWQHifMEEkf/Q02+FsrtVgE
+8ZlcfoWXgzhaFPHZALk2a1MeILN/qtrOvkrvfUOjUAn4pipDhXe/Q2hRevtzA2hU
+9bj8UIZeiKzFEFVZy81pUwzG5SU+q5hGKVxg8a8jcu4d14FdB98OMhfP6OZhJ3lx
+icQY+2Hkg01ZBc0bOcQoOFezEHvZEHGrWhPLLFkvl9XLLM8q+5q6fpmYnZaM/2m3
+RADxewJKs4WrUoT+QpGhcWc6WV6CxfHJxli1qwIDAQABAoIBAHViyk5g/RzTdVjN
+gS4WyzR+/YbB0CjNmeMxHzJbneFMqV2UmDvtbRL9XRF/Sc7hI244DIZa49nc3V2e
+qnX/H62VC7QDY5Lkf2YqW3nB6VQDd38MOJ0CIlIDuUz9yxt5R/dedZ1KGAlwvEDS
+hz7FSzwc819KAOK+Q04jsve2y+KFrrQBqWo3OTKYU0N27l541f08SqP0f+nwoAvj
+8rJvgvnwayKSC5ov0/ZRtoE3mAYEFo55b0XRmL/K1PXREOAKonF5mua4IqNjy3d0
+SWfDMGV2p+VsTY5xE+zKfqf5k9Yt+u4dL35IPp5b4WEUUS8+FpR2O8iDqDnUmbbn
+gNgTOwECgYEA6Az576bzqYksJMv6iiigg+5jZKzvrKYW4n40P2RZv+EVeL8qVi71
+vBIxpqgpDSLM2aQTIphVV/FKZGUBCUtSjiaZKLOsw7LVBeQLyisGKuHw9aOEPZAn
+8Jf10hEztaFjekbIRBrdvip0j07CIanQClJSGKrPoL8hgT08hFZl3tMCgYEAyolw
+2uw82Oz5z5v8gb0kb3yIXpMn7cfmH/x+IjKSSNbPl5+MXk9UgrfdzwkEA2Y7wwaT
+lEAdJNSzLsnnyVG4mvqPTxUenE7aPzaQsAqEPc5rqeYem9E/5RGk1oZF8utgOb8I
+S2e/B0m+tHjdbUpinTiZwOPrdm3IXzQNMkgK9skCgYBy5cnzkdTgQx1qct1w/0DL
+UoRAWyipceuu5hJ0uPl/erGpAe6ykbn3D4MqI+V/rZWExir7XDYVv1G4eBKVSYhs
+/kujzaNjmu7DZfE4fykkno8y8W4PFYvRI00CYKYb7vdUmiubHTpiaJ8iPjr9dBmg
+orYnpJv92eV7GpkWZbk3JQKBgCsDMUJs9SckfJEIkYGEB57dlaBwJAStdUPJvYfJ
+saNia0fKDGdi9ZGlNqfnREDsjziFxwWu8AGIYl1HZ8AraMcQ+ypSU+PiIxtVnTil
+oxv1IIw+YLW6pJUjQByG+4fxUMgyt7I74CfOE4AEQxIYwASfppd+T90gx3LgfQT2
+o81xAoGAe9B3/xBGslI2Iy8HyRpZgbONKXJPj8+QmE/YNxlOD36U/uilx8ppJlWt
+SHggwNy3jMpRgK95Fuar6MoPra6x9KXe0gxKWm7y8LgPTGOSZwT4X+qbqSGaNu+d
+uvljMeOYnRxLHDhiZ+2uizooWjtzHXDhuigUaRcWsTmIU0Difzg=
+-----END RSA PRIVATE KEY----- \ No newline at end of file
diff --git a/Firmware_Keys/WAVE2/5.15.45-32-r0.key b/Firmware_Keys/WAVE2/5.15.45-32-r0.key
new file mode 100644
index 0000000..652ba88
--- /dev/null
+++ b/Firmware_Keys/WAVE2/5.15.45-32-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAsg9QGnEFq0B3YVzUnUsrLJXIyNmLWVXqCrzRpscJ2UBVBGR9
+E7SUQhypn/sCZgJGDdXxgIb6+r0XxedphrrLsMCdl9p1QCNUp/yIGrm16YCVaVGz
+dyqoPJL6AbiudoTx/njlE1ZmY1nZ90W9IVqUHkbOCDRtLuLStvSVGWXUZi6wdHeM
+ErtdvQIdNOI3PSkL6PSSvkmIYaxV2ipulWZFMuEaXYhVGG7Be5Fk47awGnudq1Ck
+NQGeLALsp+UNT6YxZEPehPLUt2TtFxBS3j8mIR34ohjeeAs5iwjoG0Qf5IVL7XaA
+xf6aCY1ToDQ9b6IjJ4R9FLMq55sXgVWlzgwwCwIDAQABAoIBAFJN27PtLDalXMkn
+VKvENBeuwJl+XPgVS1JdRvc1J2tBXkrifCIgpSsN/qYRK2GliWYZz0Ceo+JEh3mV
+5uQ88awozG+Frg7QhfAEPZFE6D4fjnCZMEBT+mHNejxTdmkYOJdsoE5Y8IjZ3nN6
+y9pf+Pkpt1B5k0JJ3CZvVX/g3tW/15Me/k1Us+d1Fdjl9XnhELFUMvrEpsbOz4Gg
+LrTn7bADW0c/fE5JWS0W/gC7FLTb/WMYPlEofewfERlMXk6GMh1P9AbrRYLwRWv7
+1uER50+pF52jMPZUjeVdtHymGKQq7XBIp+99jX+3kY5rG5hMHGRhoGdL0uPczX1e
+wYA06FkCgYEA3Zd4p4qlUKyci63OkKN8WPxKv/J5felQqyrATR56TgQKfry3CMpC
+6uD+si4fzUJjNfBKOYsCz631OSEXxCt61gVZvOb1GYhH0q8D21phXMX/rjSenjeP
+RO9d9bEjwRpi600o6di91c7ZrVNj1xO++fNcRjrYOmYSpMaUVuIDB+UCgYEAzbVm
+HZjaO/tFFL5Jlsx1liEX0P8UDF4hWoRrZ2tjtVW4Va8tbrO4DM2y7btnIIBrvrBF
+M92dSsxmpODVLp1573vMf/0APMifzv9xSTjvWj+f3U4GentfmeXcVaqKvO3ignhH
+gM0k8Cmn6udbTAorrgvN61gBvnReh3uznnyQ+S8CgYAeaCedTfArZtRAcoQy4sww
+ZcZYGozDU13HbyFeM71ysSlDhN/U6/RMyL0KdDvW7bIxd5yn0sR6/RL2WO0q9RBx
+B+Dtg//EFihM58kus3NCyMSyAfR2H4egXPxWt40BdX53bWoc1KoQCcdi+ltr6wC8
+ycEyveZn9RO/2qQGXBMwZQKBgQCO4puFn3CnDUfUusA+4NIkb+QtJaD1XkTorOY1
+teBSSrJ5we5a4LbNHexVOUDO0KUGlUXcWukw1X3OtOUfNf9Gm8VWeZQ6pFhs3f4A
+kG2hUGRowhO57Axhx8oeLxGjXdFiMs3n55bqwuSCRCWkUcQ5ZrWn7T943Tfz/7aq
+NXg1vQKBgHsxlKaJtwidasABKo7AQy9LDbXiSK/HnnPJnJB2yINSq2Xjrn1bBsrH
+3ZVj0Dkq8BXXdFjhvosWb2bDPy9M4vOq/zIKR8pKGDHaDQ/+G41EfPZpofUoJkT9
+ycR9w/ViPv1tSEEA+kRweKgOud6e46yft++YRR1Ge9PPIwKCOl64
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE3/31.08.05-46-r0.key b/Firmware_Keys/WAVE3/31.08.05-46-r0.key
new file mode 100644
index 0000000..5eca3dd
--- /dev/null
+++ b/Firmware_Keys/WAVE3/31.08.05-46-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA570s3UXd27Hvjl2D9/5OOBp4bLPczPDq6QpXPI/pVsGlBF+z
+zJ56IfgWfkAanHUqIcIdtCavMwr08snZ1qYKTzM97KJSKR4/USctPkt3Q1f+/ZS/
+v8lGaZgyu6ghwThf2H0MTkZyTcw/tregDCa6FnURVblCdEGHggBHpx4h2YJFuCnn
+R89QDBZ9IIrWMwLob7sdxl9h9Xf5PLn7epQ+RgW/7pC9Cf8dy0Mh7hcj7XwUxdU+
+vdtKE8IQLowgbUUKxvZvWRu6b5KAdSpXv5F7DSotF0EytNe/qgu3eCsqHM+XQIqz
+TKjfnmEupoBY8EDCFxjKXnCy0IAfIC7dV7UhDQIDAQABAoIBACZYKwBB+z/K5XSN
+DLUQIyktWBfEexh+FKCS0XR364gran6ax0loP5U3U6F4Qe75hAsp73hLnlm3ymgR
+9jWKK9KHDAwHn8il9Jwc+2N/YTCHcu3Kmx/E0h3OzTY3z74E8fcEWfDpvygYT8KQ
+B697CPeGT2P7z38lCKL+IN0KI1e14d2Uq7qNfiJL9kecmsIegH5yYcRirWb+Xmdv
+um2JEnX0h6neBXlsC8Z9SgeSLV7G+o5/wFyjYLhR12JqzgoaQW/m/DEBrrOhqHtH
+AtxsaLmwr7G/3BeNRzQV+8a40Cmb8bxq0fIAZNXC8BeEfXqarLdaMIyhRRTDvAj9
+WtDy6JECgYEA/kPWXkzsQb4r2hm6a2MQyKhNLSQWWXqgp4APKj+rOgytmO7beHmy
+PhOrd3XYlnSxdt1BOxM10sUvj4R4Ty8sGUqrO33n9o+fPcgwrMNx2N6FGbBu6/9T
+58CoYm8Og9uvKhS2YBNPmgErTl8C1wYxcpdIg9Su7NpCGqC7cDCMI7sCgYEA6VH9
+AZXpjirtjPCmPtaGsgdimnLGxZV5zOz3EqPtpMczwi9zLqtFeuZ/w0jV5t/moY5v
++Argc+oh8usuuBpNLIw+ExbWeZ8ppkcAsx6Da0TNdY0rqHVFK9PsowSo54r37m/+
+qx55sF0ZB/nzDKdLSinQRyHvb+NWRGjxlu5d7dcCgYBozYNdiS1Uh9NBaZtqSgIQ
+AzcUZSyFI0N25xTZIDcujS08vS9fQCIU7jyd18g3c8/2I4qQlAF6Z+aLrFl+of32
+Ss27jtD+0wIbEBnoDAMwFcAc75k40xw9iS6erBH6jaFsoe7uOOd1ngfAnO7pvFbD
+WdH87LxRSkE3Aotf2dLZowKBgQDBhJw5tXJ61UYkUPFCS0J65L825R3SgZD9lEm1
+LzwLIKHgXOTG/41oS0gK3B12GZ07wF1EORlDax1vUvtz/XSnD0bpJFcNlyK/ZELD
+TfqofO+AoW9lkKannGW4LEQ/j7bmEAQFQAikbAM352tcwmEjCR1T8mSaw88ofHZs
+vhYwDwKBgDFL95NRyVZ2PsXpxQo7oI8pRBFLnruRn8vNTIkjjOxfZhLPHCIOhZ9+
+PSCo0yZ+kbxt9NJHmAAw8EM3EJFyqsmV012zgyVxQpa2zhY8k/+epfQ6exwd13Mz
+s4cpxyhwQKVBtaigxwe9EJyOViNULxnnIGPn/XQNxJ10VW1TVUkp
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE3/31.09.46-62-r0.key b/Firmware_Keys/WAVE3/31.09.46-62-r0.key
new file mode 100644
index 0000000..1b6c3bb
--- /dev/null
+++ b/Firmware_Keys/WAVE3/31.09.46-62-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtM8Vf/QdYW+vYgSGhMlMAmVIKEvb04drTUk9x09kgI8qcEjS
+BFJhkTlVKNs3KTka05/9kLr8RjXtv9mekmUVgIXGxYDnOtMeKzZEv0jr8NZlC7rM
+yv7qcXlYW7hREIk+OOUHOz73asgiuZdu+gGC3Iv8IzM+mLttt7U5iiHQZ7EfGe6Q
+2S/VYKwicn014pDOj9CIV0EN97f2PHP/VIJNsn3mbFWK6T6TT8838ZhbdS5ON4xh
+Ns5uPV8qRRseP+eYhOnPu26V6TpKDl13mJrYPN2DCihUREFpcCWG3gLRI/cXIiS2
+tl34suMMK8o3LG7EqcdtLXKJh4ppKLRYzCviLwIDAQABAoIBAHODsgqzXWn4vqXy
+mjaPnH4TUwxbmrAD3mvcFRoXAPCZhtWB0JtuPmNXq66UjyNJFniJyKgErlP09FYT
+pJmG9zvLO/jGp/QPGUEmRLmozwRpFNlvmJNAVWv1yJugoDneVOBogjw5uDyCbJ0B
+wKb8/CwHSyj5/k35wNkTcRVtEQaNMWT0AU4R1/VjXvrHIenwHYRSS9xCBGndwcY7
+P0K97wVLGrqjgfORQ8i9UpnCTUF7K3GdnktGaygNT9r6nn2erZchxhPXqjg+871V
+0vg3SjVnpPKk3bPZiIYdAZHR4v1dMU38cfkPC28TDASn/JKkgaLkAcSUO1opQpVx
+SRRSJxECgYEA33uquV62gBhW+Hz74+OH/gAwYOVEW7B/j0XF/7hNhJHfLYzmOqy/
+ajkOrvv9Pq5tGcdjEpc6R3bb/GHt1TXWTRMxatZ09m7Y4gi5EINLgJVlPSoKI1/P
+MtWz1LRELTQ4XkLg/KLNx0R7q6k+lK5UjW0ciKEITKSJISSeyFyQ+20CgYEAzx3i
+LCi7mSeKV7dr19dHq+89cigte7p1gmRM5X2URBBB+36JPwACC1M6A+V4onIPCFBD
+bWioLceGRglc8T0NcpaXs04Hu+vzNGqwAWeLOM9iS+b6qmN9q0Bfhs8AaV4OPSak
+kC9pxMgoIzxRceGSv6jtVmQAGK0fjdj+DuQ4FosCgYATV3inInNZEsI0L1z9lCuo
+6AtH14/a/6OKmtdQEntjBdzy7EbgvSKz5sxGiLiaPC5lFMSWT1BT7w2LAk67LTWm
+5gpY3MayrVVH+slJjJN0RXnFmWXXOeuM0sIFnrRn1SUrw04Fj3GP1XV+nd80rwHS
+W6ckjAtT1smnfKvhW2GQ4QKBgFi1rffIAoHYo7JqR3CNLo9/ysuoVcLW3BnbJ+xr
+WyPD6t7zFYm8USPUo9ajZIX/YFzpM9gaqV3iRaqdvAc/ZREdWyBbXYipyOM8huIz
+HThZ6vojll2Ae4Tr735oDv8SX/rlIDr5c83rBPYCkce7HAWnLvB/qGLpU8iHlll+
+el99AoGBAMbDQTxtiVutiijoqXXcy8GiS56AJuLK7b6xLP8sRU54sNOj+DSenM+g
+mMVhZUXVCh6i7rnUHZw70cUMkBw8fvXme3Jwo6knvm2qz+dJ9ErPT0Q7SLV+GJND
+rpDOsWQSEUJrevO8loss6mwJj0lj/O9z6zHTQdYIXfYunAzZBOkw
+-----END RSA PRIVATE KEY-----
diff --git a/Firmware_Keys/WAVE3/42.01.72-32-r0.key b/Firmware_Keys/WAVE3/42.01.72-32-r0.key
new file mode 100644
index 0000000..1506d8a
--- /dev/null
+++ b/Firmware_Keys/WAVE3/42.01.72-32-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA+Tt3K5JL6nFzBnz+4mdCi52QZ3o5Vs/sN0R3UMd1Pco46+ha
+FXP5Zkiq2OEEVsL8uIokSI1FoOjZob5kgAfYlbjTFy3Atfidm1ERDgQ92CB/JnR7
+ZJMZwhfZq3J1Y4pmlcxfh/VCFN7ySskgLnR8oAFGchMg/TOWDQcTkxidppHABADV
+f7V3EcAu9G+UeMS4oa5XY0WB6LusK5EQ1CSoTepEjuZA+8DmtGCWrJkqyryGxRrQ
+il/BMBX/uAiMmvs9JyamVjGMhfK6fsTiGtz4R35BNCZH+5z7rH63w2OeGCxX8P0l
+K6PH+AXiWfb/YbDiHsVCxJOiLROBIGZAj9QlmQIDAQABAoIBAQChUPcSca/HgET2
+VyNXAYUV/xc/kuHYKd53603bMC7XnrN3Jj5gkl9D8Bb9J6/6RFz1SRyxBRejTfPH
+eAduwyVRy35+CzQn1FKW/EKwstggsu/5wP05HOlYMr3F9eC7XBKINO9Efd+WyLNE
+6qd0yhr8KbciEPWSTbh6mDD4Tb+E1pzUi0PdBSTAo/IupGZmGXvG9FVPXWDBkNNG
+/5wTi8pKOjQfOnOt4oQ9O4a0EcuyWiD113oxajGPZ0OBeSulb7q3q5T12NY5wo7k
+vI1wd+QdpQsaZoxPMmRpvm3Oe6u2po7qtzmSaeynPlvpNs+3IDGu/LaGgdWqSw7v
+oYw1jx3tAoGBAP7ydXb9x+SJa7uFsV5gXvd3YbyyVn5Yj+cp0Bvi4y6dPVkETxl3
+YzDWFVOMquhWFDhb4hnoorcvVmx8n4rLssbxvGB8jXzjVvDJ1kNctu7LXyfz2oo6
+kfa6WdC+Zy6BMhOlA7MWe5tlnyI0OTxCJ+3GacRbLn7gT3O0SnGF1hCTAoGBAPpC
+9vcdGDxDWGMGnG7YgVwKI0yFbdI+x26cQ2dPtG5+u4wBFCusVC+3ljMXk0Cy1+1F
+dhn+QljXSeqs29EY6H3jisYS6h8On/XQpfglRfDUGWWlXFCvOrwQ5k3CqH/ezg6H
+bkB+tnGLlOrqC13596sUKkl+xmdIoi0pk1Vg0QijAoGBAKB4to0uUjq8cM446Zqw
+6DW1tBRU4HJohjOHsxFKb5rwqCO2vZ8W8Z1Us1nCifTx8YpD835BWuIY7roce0Oe
+0am9kMfeviQk6J1pPe9qlU6bPgrkx+MH2MZHJ69nmYTBF2ccD8cS2LzIazDZVElk
+jsNwhzRr/EkqIXh/u/fWuRX3AoGBAJQ4WwrKmZL/k/a6cKYZ5qu7eWKV2BBgjD+P
+n0At7cBPoQZvkSG4o/fK9NN30AfOpKJrtGH6vBLgF3A9RseVyATfYk6j3zPbtpOh
+KttIQB89j3krMfy7e77tB2ngs2lgbYwfXAYoxieDswRa77aOGMijXdQ/mISNeTfk
+WtWDTOqfAoGANPmns4qP5r1Old+4saQeD4dptLPnYbqhZVdDagbXUe85L1l8PqvA
+FnqWn58CZ9GETlfcrX+fvpX0JjPeOylpLHg3Oa/daAZbjVY9eiepUrvwfykCWTtY
+dT3QrvB4+pchGojelodW5NSK2B8j/aIsRO0pMlRMIBwgVT+REffhB/g=
+-----END RSA PRIVATE KEY----- \ No newline at end of file
diff --git a/Firmware_Keys/WAVE4/42.01.72-32-r0.key b/Firmware_Keys/WAVE4/42.01.72-32-r0.key
new file mode 100644
index 0000000..948ca60
--- /dev/null
+++ b/Firmware_Keys/WAVE4/42.01.72-32-r0.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAwMvFBe0BGUkESi+A2XhNQmvmbBHbrHM1x+gW2SqJQt654+4g
+8/lRSXNSvHzUMZwg/AyPOYj8xgc13uKVTaL1W9BliddMMrUsoPfu1NI3J1rRZPVl
++zIY+3NzED+9SiKM//ZVZvWvcQhIGN48xKA2SMoEwKAvxcFkWhUxIVGbB44Um9ok
+36oYMrUzWeAKE4Ow33hZAoF4A2SDAEFVea+0LrU6AkQk0lyUtF2M9TdLKZlj3BM8
+qcB6swrrgrx4nMxeJTCZs8elFNNL1K9aytDAkrcox/0kx+0h62bOFA1VMqTp4CZO
+Cd+M72YvlI9Gto4nhB5/evazBlY3Ik4YKjIbyQIDAQABAoIBABZUw+puzEzId1W8
+cNk/pPtHkjX8T4yG/7i6+kKHOcTkFXYANBLuUusGD5RDhTSF2BA5yDEq29R4K1Y4
+uoB2mqLa3Zf8txe8goHWlfRSsQ6+5zghcIGLCPe/JJnCOEOpAtn3B2dYl8yo3+j5
+fOJtiDwgIjLJmx71ypDgmYM5d5KFP6txxTTgUyGTI9eMb2GhoCN0Ry8NqBOygZKm
+aQwh4i8+qVI9gEOBvt+pb6SfKY/dOJW9agquRr6/3CojTIykczHE1aLoLc2xSwJm
+EM5SrWXKylS2+UkzB/xf+x0/zslv39a7KfvDVKHnBYBDY80ynLHvSnIvD+R3gOSz
+2zgqvx0CgYEA+jOx4MnqmAFPYOFX5r4GGcHLjjMSk2gr9jHkHnex5FIBIGwCUP0O
+QHln0ledFLn4Slboji+i3Gb+1uOGWX3Jh7qVsm80fyt9IbbeP/ucK1SsGYXfz4WU
+gfZZSfDfzJD9ELhqRhvXDCTdGq+wt2/rTCRfilALxIEOgAisSdsOoJMCgYEAxUOE
+nUwX7NsFZAjlQLSXqrT7LeoUpI1f1F0NMpr3bWrBO7gWpMEJlh0R4NtbnUs268IB
+TzP+EmiOsnN0n3oq36ZDGxOuVuq/7vmG8DyF1XiU/LoHAfRmJFgz8fgdYO4NYeLe
+pD5jI+gwz9nhBPQQxH2Xn1t/P3l2nQY/xb4O97MCgYAM+P0yEIYPV5IMDeMG3bdn
+QnsRZmiCKBaPb0rKoZ4hnnbcfX0pQdWpViIh79T/LB1JjXQFW0bwco6oCaf/n9wB
+I5V7aPSp21FjnB2t55fTT1KVCDHwipaGnoVGpiyUaLgWU9l+xRbDVG36Yj2hZTYn
+/oLNoxTZHW/pB4oXUjpR7QKBgQCFkq+Et5bnynL/Bsr9ooukiwIeWAf8WMKQESYz
+ox1x2LzZzFCA5TmxjSOjB8YkX17kCy1JzWH4YxZlHarVpirL4FBGUHBX6INotUw6
+9jCFmS4BZ5IBL9XOPG+IJEL4dJlZM/8gZiJJmRscU2N8MCv+cTCvNoyWlY/MygN6
+ybRm4wKBgEGhVajEgg5/Qj26OiStnLh3wFZL59N4QCcF4pSzCDWzHo3vfRtr5qXo
+D9r4W53HQGSnFe9gdm3+ejcbTFS4/10pUiz7Kq4JBHU/Q4TxLI7dpHJ/6kss4qR2
+nILRs+Y0/iY9pNiWruf5aumMbj4bxikreU1BFjBauDol13e0/+cz
+-----END RSA PRIVATE KEY-----
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1c6b168
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# psa-nac-firmware-reverse-engineering
+
+### Decrypt firmware files
+ tar xvf PSA_ovip-int-firmware-version_21-08-25-12_NAC-r0_NAC_EUR_WAVE2.tar
+ bash ./Scripts/decrypt_SWL.sh SWL/ ./Firmware_Keys/WAVE2/21.08.25-12-r0.key
+
+### Decrypt single firmware file
+ bash ./Scripts/decrypt_smime_file.sh ui-app-data-resource.tar.gz ./Firmware_Keys/WAVE2/21.08.25-12-r0.key
+
+### Mount rootfs (once decrypted)
+ bash ./Scripts/mount_ubifs_nac.sh rootfs.fsn
+ ls -l /mnt/ubifs
diff --git a/Scripts/decrypt_SWL.sh b/Scripts/decrypt_SWL.sh
new file mode 100644
index 0000000..3a7386c
--- /dev/null
+++ b/Scripts/decrypt_SWL.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+DIRECTORY=$1
+FIRMWARE_KEY=$2
+
+if [[ -d $DIRECTORY ]]; then
+ find $DIRECTORY -type f -print0 | while read -d $'\0' FILE; do
+ DATA=$(head -2 $FILE | grep "smime." 2>&1)
+ if [[ $DATA =~ '"smime.' ]]; then
+ cp $FILE $FILE.bak
+ OPENSSL_RESULT=$(openssl smime -decrypt -in $FILE.bak -inkey $FIRMWARE_KEY 2>&1 > $FILE)
+ if [[ -f $FILE && $OPENSSL_RESULT == '' ]]; then
+ echo "${FILE} has been decrypted"
+ rm -rf $FILE.bak
+ else
+ mv $FILE.bak $FILE
+ echo "${FILE} has not been decrypted, the key is probably invalid !"
+ echo "Stopping"
+ exit 1
+ fi
+ else
+ echo "${FILE} seems already decrypted !"
+ fi
+ done
+ find $DIRECTORY -type f -print0 | while read -d $'\0' FILE; do
+ if [[ -f $FILE"01" ]]; then
+ for i in {1..9}
+ do
+ if [[ -f $FILE"0"$i ]]; then
+ cat $FILE"0"$i >> $FILE
+ rm -rf $FILE"0"$i
+ fi
+ done
+ echo "${FILE} parts have been merged !"
+ fi
+ done
+else
+ echo "${DIRECTORY} not found or not a directory !"
+fi
+
+exit 0 \ No newline at end of file
diff --git a/Scripts/decrypt_smime_file.sh b/Scripts/decrypt_smime_file.sh
new file mode 100644
index 0000000..3045799
--- /dev/null
+++ b/Scripts/decrypt_smime_file.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+FILE=$1
+FIRMWARE_KEY=$2
+
+if [[ -f "$FILE" ]]; then
+ DATA=$(head -2 $FILE | grep "smime." 2>&1)
+ if [[ $DATA =~ '"smime.' ]]; then
+ cp $FILE $FILE.bak
+ OPENSSL_RESULT=$(openssl smime -decrypt -in $FILE.bak -inkey $FIRMWARE_KEY 2>&1 > $FILE)
+ if [[ -f "$FILE" && $OPENSSL_RESULT == '' ]]; then
+ echo "${FILE} has been decrypted"
+ rm -rf $FILE.bak
+ else
+ mv $FILE.bak $FILE
+ echo "${FILE} has not been decrypted, the key is probably invalid !"
+ echo "Stopping"
+ exit 1
+ fi
+ else
+ echo "${FILE} seems already decrypted !"
+ fi
+else
+ echo "${FILE} not found !"
+fi
+
+exit 0 \ No newline at end of file
diff --git a/Scripts/mount_ubifs_nac.sh b/Scripts/mount_ubifs_nac.sh
new file mode 100644
index 0000000..9d0ea35
--- /dev/null
+++ b/Scripts/mount_ubifs_nac.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+UBIFS_IMAGE=$1
+
+mkdir -p /mnt/ubifs
+if grep -qs '/dev/ubi' /proc/mounts; then
+ umount /mnt/ubifs
+ ubidetach -p /dev/mtd0
+ rmmod nandsim
+fi
+
+modprobe ubi
+modprobe nandsim first_id_byte=0xec second_id_byte=0xd5 third_id_byte=0x51 fourth_id_byte=0xa6
+flash_erase /dev/mtd0 0 0
+ubiformat /dev/mtd0 -s 4096 -O 4096
+ubiattach -m 0 -d 0 -O 4096
+ubimkvol /dev/ubi0 -N NAC_UBIFS -s 1024MiB
+ubiupdatevol /dev/ubi0_0 $UBIFS_IMAGE
+mount /dev/ubi0_0 /mnt/ubifs
+
+echo "${UBIFS_IMAGE} mounted on /mnt/ubifs" \ No newline at end of file
diff --git a/Scripts/mount_ubifs_rcc.sh b/Scripts/mount_ubifs_rcc.sh
new file mode 100644
index 0000000..322d29e
--- /dev/null
+++ b/Scripts/mount_ubifs_rcc.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+UBIFS_IMAGE=$1
+
+mkdir -p /mnt/ubifs
+if grep -qs '/dev/ubi' /proc/mounts; then
+ umount /mnt/ubifs
+ ubidetach -p /dev/mtd0
+ rmmod nandsim
+fi
+
+modprobe ubi
+modprobe nandsim first_id_byte=0xec second_id_byte=0xd7 third_id_byte=0x00 fourth_id_byte=0x36
+flash_erase /dev/mtd0 0 0
+ubiformat /dev/mtd0 -s 4096 -O 4096
+ubiattach -m 0 -d 0 -O 4096
+ubimkvol /dev/ubi0 -N NAC_UBIFS -s 1024MiB
+ubiupdatevol /dev/ubi0_0 $UBIFS_IMAGE
+mount /dev/ubi0_0 /mnt/ubifs
+
+echo "${UBIFS_IMAGE} mounted on /mnt/ubifs" \ No newline at end of file