mirror of
https://github.com/jakcron/nstool.git
synced 2024-12-22 18:55:29 +00:00
Change readme. Add information about keys.
This commit is contained in:
parent
b4d3fbe7f9
commit
f36ef0061d
60
KEYS.md
Normal file
60
KEYS.md
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
# Format
|
||||||
|
Programs in NXTools currently recognise the following keys (## represents a hexadecimal number between 00 and 1F):
|
||||||
|
|
||||||
|
```
|
||||||
|
; Key Sources
|
||||||
|
master_key_## : Master key, used to derive other keys. (0x10 bytes)
|
||||||
|
aes_kek_generation_source : Used to derive other aes-keks. (0x10 bytes)
|
||||||
|
aes_key_generation_source : Used to derive other aes-keys. (0x10 bytes)
|
||||||
|
package2_key_source : Used with master_key_## to derive package2_key_##. (0x10 bytes)
|
||||||
|
ticket_commonkey_source : Used with master_key_## to derive ticket_commonkey_##. (0x10 bytes)
|
||||||
|
nca_header_kek_source : Used with master_key_00, aes_kek_generation_source and aes_key_generation_source to generate nca_header_kek. (0x10 bytes)
|
||||||
|
nca_header_key_source : Used with nca_header_kek to generate nca_header_key. (0x20 bytes)
|
||||||
|
nca_body_keak_application_source : Used with master_key_##, aes_kek_generation_source and aes_key_generation_source to generate nca_body_keak_application_##. (0x10 bytes)
|
||||||
|
nca_body_keak_ocean_source : Used with master_key_##, aes_kek_generation_source and aes_key_generation_source to generate nca_body_keak_ocean_##. (0x10 bytes)
|
||||||
|
nca_body_keak_system_source : Used with master_key_##, aes_kek_generation_source and aes_key_generation_source to generate nca_body_keak_system_##. (0x10 bytes)
|
||||||
|
|
||||||
|
; Package1 keys
|
||||||
|
package1_key_## : AES128 Key (0x10 bytes)
|
||||||
|
|
||||||
|
; Package2 Keys
|
||||||
|
package2_key_## : AES128 Key (0x10 bytes)
|
||||||
|
package2_sign_key_modulus : RSA2048 Modulus (0x100 bytes)
|
||||||
|
package2_sign_key_private : RSA2048 Private Exponent (0x100 bytes)
|
||||||
|
|
||||||
|
; Ticket Keys
|
||||||
|
ticket_commonkey_## : AES128 Key (0x10 bytes)
|
||||||
|
|
||||||
|
; NCA Keys
|
||||||
|
nca_header_key : AES128-XTS Key (0x20 bytes)
|
||||||
|
nca_header_sign_key_modulus : RSA2048 Modulus (0x100 bytes)
|
||||||
|
nca_header_sign_key_private : RSA2048 Private Exponent (0x100 bytes)
|
||||||
|
nca_body_keak_application_## : AES128 Key (0x10 bytes)
|
||||||
|
nca_body_keak_ocean_## : AES128 Key (0x10 bytes)
|
||||||
|
nca_body_keak_system_## : AES128 Key (0x10 bytes)
|
||||||
|
|
||||||
|
; XCI Keys
|
||||||
|
xci_header_key : AES128 Key (0x10 bytes)
|
||||||
|
xci_header_sign_key_modulus : RSA2048 Modulus (0x100 bytes)
|
||||||
|
xci_header_sign_key_private : RSA2048 Private Exponent (0x100 bytes)
|
||||||
|
|
||||||
|
; ACID Keys
|
||||||
|
acid_sign_key_modulus : RSA2048 Modulus (0x100 bytes)
|
||||||
|
acid_sign_key_private : RSA2048 Private Exponent (0x100 bytes)
|
||||||
|
```
|
||||||
|
|
||||||
|
# Compatibility with hactool keyset files
|
||||||
|
NXTools keyset files share the same keyset file format as [hactool](https://github.com/SciresM/hactool/blob/master/KEYS.md), but names of keys may differ. For compatibility, hactool names for equivalent keys are accepted.
|
||||||
|
```
|
||||||
|
titlekey_source : hactool alias for ticket_commonkey_source
|
||||||
|
header_key_source : hactool alias for nca_header_key_source
|
||||||
|
header_kek_source : hactool alias for nca_header_kek_source
|
||||||
|
key_area_key_application_source : hactool alias for nca_body_keak_application_source
|
||||||
|
key_area_key_ocean_source : hactool alias for nca_body_keak_ocean_source
|
||||||
|
key_area_key_system_source : hactool alias for nca_body_keak_system_source
|
||||||
|
titlekek_## : hactool alias for ticket_commonkey_##
|
||||||
|
header_key : hactool alias for nca_header_key
|
||||||
|
key_area_key_application_## : hactool alias for nca_body_keak_application_##
|
||||||
|
key_area_key_ocean_## : hactool alias for nca_body_keak_ocean_##
|
||||||
|
key_area_key_system_## : hactool alias for nca_body_keak_system_##
|
||||||
|
```
|
33
README.md
33
README.md
|
@ -1,11 +1,28 @@
|
||||||
# NXTools
|
# NXTools
|
||||||
Tools for NX (Nintendo Switch).
|
|
||||||
|
|
||||||
== Tools ==
|
Tools & Libraries for NX (Nintendo Switch).
|
||||||
* ncatool - read/extract *.nca
|
|
||||||
* nstool - read *.npdm, read/extract PartitionFS (PFS0|HFS0) blobs (including *.nsp), read *.xci
|
|
||||||
* tiktool - read ticket fields.
|
|
||||||
|
|
||||||
== Issues ==
|
![License](https://img.shields.io/badge/license-MIT-blue.svg)
|
||||||
* [ncatool] nca section extraction not implemented
|
|
||||||
* [nstool] romfs support not implemented
|
# Tools
|
||||||
|
|
||||||
|
* (nstool)[/programs/nstool] - read *.npdm, read/extract PartitionFS (PFS0|HFS0) blobs (including *.nsp), read *.xci
|
||||||
|
* (ncatool)[/programs/ncatool] - read/extract *.nca
|
||||||
|
* (tiktool)[/programs/tiktool] - read ticket fields.
|
||||||
|
|
||||||
|
# Libraries
|
||||||
|
|
||||||
|
* (libfnd)[/lib/libfnd] - Foundation library.
|
||||||
|
* (libcrypto)[/lib/libcrypto] - Cryptographic functions (AES,SHA,RSA). Wrapper for [mbedTLS](https://github.com/ARMmbed/mbedtls)
|
||||||
|
* (libes)[/lib/libes] - Handling of (NS relevant) eShop file type processing. (eTickets, etc)
|
||||||
|
* (libnx)[/lib/libnx] - Handling of NS file types
|
||||||
|
|
||||||
|
# External Keys
|
||||||
|
|
||||||
|
Programs/libraries don't embed any keys that are copyright protected. However keys can be imported via a keyset file.
|
||||||
|
|
||||||
|
For programs that support it, the keyset file can either be provided via the command line (see program usage for details). Alternatively a keyset file located in _$HOME/.switch/prod.keys_ (or _$HOME/.switch/dev.keys_ for dev) will be imported automatically if one is not provided at the command line.
|
||||||
|
|
||||||
|
Keyset files are ASCII text files containing one key per line, in the form "key_name = HEXADECIMALKEY". Case and whitespace do not matter, ';' character can be used to insert comments.
|
||||||
|
|
||||||
|
See [KEYS.md](/KEYS.md) for more details.
|
Loading…
Reference in a new issue