10 #define SPL_RSA_BUFFER_SIZE (0x100) 13 SplConfigItem_DisableProgramVerification = 1,
14 SplConfigItem_DramId = 2,
15 SplConfigItem_SecurityEngineIrqNumber = 3,
16 SplConfigItem_Version = 4,
17 SplConfigItem_HardwareType = 5,
18 SplConfigItem_IsRetail = 6,
19 SplConfigItem_IsRecoveryBoot = 7,
20 SplConfigItem_DeviceId = 8,
21 SplConfigItem_BootReason = 9,
22 SplConfigItem_MemoryArrange = 10,
23 SplConfigItem_IsDebugMode = 11,
24 SplConfigItem_KernelMemoryConfiguration = 12,
25 SplConfigItem_IsChargerHiZModeEnabled = 13,
26 SplConfigItem_IsKiosk = 14,
27 SplConfigItem_NewHardwareType = 15,
28 SplConfigItem_NewKeyGeneration = 16,
29 SplConfigItem_Package2Hash = 17,
33 RsaKeyVersion_Deprecated = 0,
34 RsaKeyVersion_Extended = 1,
37 Result splInitialize(
void);
40 Result splCryptoInitialize(
void);
41 void splCryptoExit(
void);
43 Result splSslInitialize(
void);
44 void splSslExit(
void);
46 Result splEsInitialize(
void);
49 Result splFsInitialize(
void);
52 Result splManuInitialize(
void);
53 void splManuExit(
void);
55 Result splGetConfig(SplConfigItem config_item,
u64 *out_config);
56 Result splUserExpMod(
const void *input,
const void *modulus,
const void *exp,
size_t exp_size,
void *dst);
57 Result splSetConfig(SplConfigItem config_item,
u64 value);
58 Result splGetRandomBytes(
void *out,
size_t out_size);
59 Result splIsDevelopment(
bool *out_is_development);
63 Result splCryptoGenerateAesKek(
const void *wrapped_kek,
u32 key_generation,
u32 option,
void *out_sealed_kek);
64 Result splCryptoLoadAesKey(
const void *sealed_kek,
const void *wrapped_key,
u32 keyslot);
65 Result splCryptoGenerateAesKey(
const void *sealed_kek,
const void *wrapped_key,
void *out_sealed_key);
66 Result splCryptoDecryptAesKey(
const void *wrapped_key,
u32 key_generation,
u32 option,
void *out_sealed_key);
67 Result splCryptoCryptAesCtr(
const void *input,
void *output,
size_t size,
const void *ctr);
68 Result splCryptoComputeCmac(
const void *input,
size_t size,
u32 keyslot,
void *out_cmac);
69 Result splCryptoLockAesEngine(
u32 *out_keyslot);
70 Result splCryptoUnlockAesEngine(
u32 keyslot);
71 Result splCryptoGetSecurityEngineEvent(
Handle *out_event);
73 Result splRsaDecryptPrivateKey(
const void *sealed_kek,
const void *wrapped_key,
const void *wrapped_rsa_key,
size_t wrapped_rsa_key_size, RsaKeyVersion version,
void *dst,
size_t dst_size);
75 Result splSslLoadSecureExpModKey(
const void *sealed_kek,
const void *wrapped_key,
const void *wrapped_rsa_key,
size_t wrapped_rsa_key_size, RsaKeyVersion version);
76 Result splSslSecureExpMod(
const void *input,
const void *modulus,
void *dst);
78 Result splEsLoadRsaOaepKey(
const void *sealed_kek,
const void *wrapped_key,
const void *wrapped_rsa_key,
size_t wrapped_rsa_key_size, RsaKeyVersion version);
79 Result splEsUnwrapRsaOaepWrappedTitlekey(
const void *rsa_wrapped_titlekey,
const void *modulus,
const void *label_hash,
size_t label_hash_size,
u32 key_generation,
void *out_sealed_titlekey);
80 Result splEsUnwrapAesWrappedTitlekey(
const void *aes_wrapped_titlekey,
u32 key_generation,
void *out_sealed_titlekey);
81 Result splEsLoadSecureExpModKey(
const void *sealed_kek,
const void *wrapped_key,
const void *wrapped_rsa_key,
size_t wrapped_rsa_key_size, RsaKeyVersion version);
82 Result splEsSecureExpMod(
const void *input,
const void *modulus,
void *dst);
84 Result splFsLoadSecureExpModKey(
const void *sealed_kek,
const void *wrapped_key,
const void *wrapped_rsa_key,
size_t wrapped_rsa_key_size, RsaKeyVersion version);
85 Result splFsSecureExpMod(
const void *input,
const void *modulus,
void *dst);
86 Result splFsGenerateSpecificAesKey(
const void *wrapped_key,
u32 key_generation,
u32 option,
void *out_sealed_key);
87 Result splFsLoadTitlekey(
const void *sealed_titlekey,
u32 keyslot);
88 Result splFsGetPackage2Hash(
void *out_hash);
90 Result splManuEncryptRsaKeyForImport(
const void *sealed_kek_pre,
const void *wrapped_key_pre,
const void *sealed_kek_post,
const void *wrapped_kek_post,
u32 option,
const void *wrapped_rsa_key,
void *out_wrapped_rsa_key,
size_t rsa_key_size);
u32 Handle
Kernel object handle.
Definition: types.h:45
u32 Result
Function error code result type.
Definition: types.h:46
uint64_t u64
64-bit unsigned integer.
Definition: types.h:24
uint32_t u32
32-bit unsigned integer.
Definition: types.h:23