aboutsummaryrefslogtreecommitdiff
path: root/src/core/crypto/key_manager.cpp
AgeCommit message (Collapse)Author
2020-07-10KeyManager: Prevent writing of invalid keysMorph
If the keys are zero, don't write them to the autogenerated file.
2020-04-16key_manager: Resolve missing field initializer warningLioncash
2019-11-15Merge pull request #3091 from lioncash/core-conversionbunnei
core: Make most implicit type conversion warnings errors on MSVC
2019-11-14Merge pull request #3093 from lioncash/mbedtlsbunnei
core: Migrate off deprecated mbedtls functions
2019-11-12key_manager: Make use of IOFile in WriteKeyToFile()Lioncash
This properly handles unicode-based paths on Windows, while opening a raw stream doesn't out-of-the-box. Prevents file creation from potentially failing on Windows PCs that make use of unicode characters in their save paths (e.g. writing to a user's AppData folder, where the user has a name with non-ASCII characters).
2019-11-12core: Migrate off deprecated mbedtls functionsLioncash
These functions are marked for deprecation and it's recommended that the *_ret variants be used instead.
2019-11-12externals: Update httplibLioncash
Since the introduction of this library, numerous improvements have been made. Notably, many of the warnings we would get by simply including the library header have now been fixed. This makes it much easier to make conversion warning an error.
2019-11-12crypto: Resolve sign-conversion warningsLioncash
2019-10-02[crypto] Use IsAllZeroArray helper functionvperus
2019-07-07key_manager: Convert Ticket union to std::variantZach Hilman
2019-07-07es: Populate/synthesize tickets on constructionZach Hilman
2019-07-07key_manager: Add structure for Ticket parsingZach Hilman
2019-07-07key_manager: Add accessors/helpers for ticket managementZach Hilman
2019-06-12common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash
These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays.
2019-03-26core: Port current uses of RegisteredCache to ContentProviderZach Hilman
2019-02-20Fixes Unicode Key File Directories (#2120)Jungy
* Fixes Unicode Key File Directories Adds code so that when loading a file it converts to UTF16 first, to ensure the files can be opened. Code borrowed from FileUtil::Exists. * Update src/core/crypto/key_manager.cpp Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com> * Update src/core/crypto/key_manager.cpp Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com> * Using FileUtil instead to be cleaner. * Update src/core/crypto/key_manager.cpp Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
2018-12-04Merge pull request #1836 from lioncash/unusedbunnei
crypto/key_manager: Remove unused variable in GetTicketblob()
2018-12-01filesystem: De-globalize registered_cache_unionLioncash
We can just return a new instance of this when it's requested. This only ever holds pointers to the existing registed caches, so it's not a large object. Plus, this also gets rid of the need to keep around a separate member function just to properly clear out the union. Gets rid of one of five globals in the filesystem code.
2018-12-01crypto/key_manager: Remove unused variable in GetTicketblob()Lioncash
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L
* get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
2018-10-27key_manager: Use isxdigit instead of isdigit when reading key fileZach Hilman
Crypto revisions are hex numbers and this function only checks if the string is valid for stoul in base 16, so it should be isxdigit.
2018-10-24key_manager: Remove unused variable in DeriveBase()Lioncash
2018-10-13key_manager/partition_data_manager: Silence truncation compiler warningsLioncash
2018-10-13key_manager: Use std::vector's insert() instead of std::copy with a ↵Lioncash
back_inserter If the data is unconditionally being appended to the back of a std::vector, we can just directly insert it there without the need to insert all of the elements one-by-one with a std::back_inserter.
2018-10-13key_manager: Brace long conditional bodyLioncash
If a conditional (or it's body) travels more than one line, it should be braced.
2018-10-13key_manager: Don't assume file seeks and reads will always succeedLioncash
Given the filesystem should always be assumed to be volatile, we should check and bail out if a seek operation isn't successful. This'll prevent potentially writing/returning garbage data from the function in rare cases. This also allows removing a check to see if an offset is within the bounds of a file before perfoming a seek operation. If a seek is attempted beyond the end of a file, it will fail, so this essentially combines two checks into one in one place.
2018-10-13key_manager: Remove unnecessary seek in DeriveSDSeed()Lioncash
Given the file is opened a few lines above and no operations are done, other than check if the file is in a valid state, the read/write pointer will always be at the beginning of the file.
2018-10-07partition_data_manager: Rename system files for hekateZach Hilman
x
2018-10-07key_manager: Add support for loading keys from partition dataZach Hilman
2018-10-07key_manager: Add ETicket key derivationZach Hilman
Derives titlekeys
2018-10-07key_manager: Add base key derivationZach Hilman
Derives master keys, game encryption keys, and package1/2 keys
2018-10-07key_manager: Add BIS key getterZach Hilman
2018-10-07key_manager: Add support for more keysZach Hilman
TSEC, SBK, BIS, and other Sources for proper derivation
2018-10-07key_manager: Add keyblob supportZach Hilman
2018-10-07key_manager: Add support for crypto revisions past 04Zach Hilman
2018-10-07key_manager: Add support for comments in keyfilesZach Hilman
2018-10-07key_manager: Add support for console-specific keyfileZach Hilman
2018-10-07key_manager: Rename KEK to KekZach Hilman
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-09-04nsp: Comply with style and performance guidelinesZach Hilman
2018-09-04key_manager: Avoid autogeneration if key existsZach Hilman
2018-09-03file_sys: Replace includes with forward declarations where applicableLioncash
Cuts down on include dependencies, resulting in less files that need to be rebuilt when certain things are changed.
2018-08-24file_sys/crypto: Fix missing/unnecessary includesZach Hilman
2018-08-23key_manager: Eliminate indexed for loopZach Hilman
2018-08-23key_manager: Create keys dir if it dosen't existZach Hilman
On call to WriteKeyToFile, so that the autogenerated file can be written.
2018-08-23file_sys: Cut down on includes and copiesZach Hilman
2018-08-23crypto: Eliminate magic constantsZach Hilman
2018-08-23key_manager: Add support for autogenerated keysZach Hilman
Stored in a separate file than manual keys.
2018-08-23key_manager: Add support for KEK and SD seed derivationZach Hilman
2018-08-23key_manager: Switch to boost flat_map for keysZach Hilman
Should make key gets marginally faster.