SPL services: Difference between revisions
No edit summary |
|||
Line 19: | Line 19: | ||
! Cmd || Name || Notes | ! Cmd || Name || Notes | ||
|- | |- | ||
| 0 || [[#GetConfig]] || Wrapper for [[SMC#GetConfig|GetConfig]]. | | 0 || [[#GetConfig]] || Wrapper for [[SMC#GetConfig|GetConfig SMC]]. | ||
|- | |- | ||
| 1 || [[#UserExpMod]] || Speculative name. User supplied modulus and exponent. | | 1 || [[#UserExpMod]] || Speculative name. User supplied modulus and exponent. | ||
|- | |- | ||
| 2 || [[#GenerateAesKek]] || Wrapper for [[SMC# | | 2 || [[#GenerateAesKek]] || Wrapper for [[SMC#GenerateAesKek|GenerateAesKek SMC]]. | ||
|- | |- | ||
| 3 || [[#LoadAesKey]] || Wrapper for [[SMC# | | 3 || [[#LoadAesKey]] || Wrapper for [[SMC#LoadAesKey|LoadAesKey SMC]]. | ||
|- | |- | ||
| 4 || [[#GenerateAesKey]] || Decrypts 0x10 bytes using AES ECB and uses [[SMC# | | 4 || [[#GenerateAesKey]] || Decrypts 0x10 bytes using AES ECB and uses [[SMC#LoadAesKey|LoadAesKey SMC]] with a fixed Y. | ||
|- | |- | ||
| 5 || [[#SetConfig]] || Wrapper for [[SMC#SetConfig|SetConfig]]. | | 5 || [[#SetConfig]] || Wrapper for [[SMC#SetConfig|SetConfig SMC]]. | ||
|- | |- | ||
| 7 || [[#GetRandomBytes]] || Uses [[SMC# | | 7 || [[#GetRandomBytes]] || Uses [[SMC#GetRandomBytes|GetRandomBytes SMC]]. | ||
|- | |- | ||
| 9 || [[#DecryptImportPrivkForExpMod0]] || Speculative name. Wrapper for [[SMC# | | 9 || [[#DecryptImportPrivkForExpMod0]] || Speculative name. Wrapper for [[SMC#LoadRsaPublicKey|LoadRsaPublicKey SMC]]. | ||
|- | |- | ||
| 10 || [[#ExpMod0]] || Speculative name. Wrapper for [[SMC# | | 10 || [[#ExpMod0]] || Speculative name. Wrapper for [[SMC#PublicRsa|PublicRsa SMC]]. | ||
|- | |- | ||
| 11 || [[#IsDevelopment]] || | | 11 || [[#IsDevelopment]] || | ||
|- | |- | ||
| 12 || [[#GenerateSpecificAesKey]] || Wrapper for [[SMC# | | 12 || [[#GenerateSpecificAesKey]] || Wrapper for [[SMC#GenerateSpecificAesKey|GenerateSpecificAesKey SMC]]. | ||
|- | |- | ||
| 13 || [[#DecryptPrivk]] || Speculative name. Wrapper for [[SMC# | | 13 || [[#DecryptPrivk]] || Speculative name. Wrapper for [[SMC#PrivateRsa|PrivateRsa SMC]]. | ||
|- | |- | ||
| 14 || [[#DecryptAesKey]] || Decrypts 0x10 bytes using AES ECB and uses [[SMC# | | 14 || [[#DecryptAesKey]] || Decrypts 0x10 bytes using AES ECB and uses [[SMC#LoadAesKey|LoadAesKey SMC]] with fixed X and Y. | ||
|- | |- | ||
| 15 || [[#DecryptAesCtr]] || Wrapper for [[SMC# | | 15 || [[#DecryptAesCtr]] || Wrapper for [[SMC#CryptAes|CryptAes SMC]]. | ||
|- | |- | ||
| 16 || [[#ComputeCmac]] || Wrapper for [[SMC# | | 16 || [[#ComputeCmac]] || Wrapper for [[SMC#ComputeCmac|ComputeCmac SMC]]. | ||
|- | |- | ||
| 17 || [[#DecryptImportPrivkForExpMod1]] || Speculative name. Wrapper for [[SMC# | | 17 || [[#DecryptImportPrivkForExpMod1]] || Speculative name. Wrapper for [[SMC#LoadRsaPrivateKey|LoadRsaPrivateKey SMC]]. | ||
|- | |- | ||
| 18 || [[#ExpMod1]] || Speculative name. Wrapper for [[SMC# | | 18 || [[#ExpMod1]] || Speculative name. Wrapper for [[SMC#UnwrapRsaEncryptedAesKey|UnwrapRsaEncryptedAesKey SMC]]. | ||
|- | |- | ||
| 19 || [[# | | 19 || [[#LoadPreparedAesKey]] || Wrapper for [[SMC#LoadRsaWrappedAesKey|LoadRsaWrappedAesKey SMC]]. | ||
|- | |- | ||
| 20 || [2.0.0+] [[# | | 20 || [2.0.0+] [[#GeneratePreparedAesKek]] || Wrapper for [[SMC#KeygenAndSealZ|KeygenAndSealZ]]. | ||
|- | |- | ||
| 21 || [2.0.0+] [[#LockAesEngine]] || | | 21 || [2.0.0+] [[#LockAesEngine]] || | ||
Line 256: | Line 256: | ||
Generates and returns a 16-byte key ('''key_z'''). | Generates and returns a 16-byte key ('''key_z'''). | ||
== | == LoadPreparedAesKey == | ||
Takes a u32 ('''keyslot''') and a 16-byte key ('''key_z'''). | Takes a u32 ('''keyslot''') and a 16-byte key ('''key_z'''). | ||
Line 263: | Line 263: | ||
[2.0.0+] Verifies the engine is locked by current session. | [2.0.0+] Verifies the engine is locked by current session. | ||
== | == GeneratePreparedAesKek == | ||
Takes a 16-byte EKS ('''Encryption Key Source'''). | Takes a 16-byte EKS ('''Encryption Key Source'''). | ||