Changes

Jump to navigation Jump to search
321 bytes added ,  18:44, 12 May 2020
no edit summary
Line 16: Line 16:     
== GenerateRandomBytes ==
 
== GenerateRandomBytes ==
Takes an output type-0xA buffer and fills it with random data from [[SMC#GetRandomBytes|GetRandomBytes SMC]]. Same command for "spl:" and "csrng" services, except for buffer-type.
+
Takes an output type-0xA buffer and fills it with random data from [[SMC#GenerateRandomBytes|GenerateRandomBytes SMC]]. Same command for "spl:" and "csrng" services, except for buffer-type.
    
= spl: =
 
= spl: =
Line 27: Line 27:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 45: Line 45:  
Takes an input u32 '''ConfigItem'''. Returns one or more output u64s '''ConfigValue'''.
 
Takes an input u32 '''ConfigItem'''. Returns one or more output u64s '''ConfigValue'''.
   −
== ExpMod ==
+
== ModularExponentiate ==
Wrapper for [[SMC#ExpMod|ExpMod SMC]].
+
Wrapper for [[SMC#ModularExponentiate|ModularExponentiate SMC]].
    
Takes an output type-0xA buffer '''DataOut''' and 3 input type-0x9 buffers '''DataIn''', '''ExpIn''' and '''ModIn'''.
 
Takes an output type-0xA buffer '''DataOut''' and 3 input type-0x9 buffers '''DataIn''', '''ExpIn''' and '''ModIn'''.
Line 81: Line 81:     
== ImportLotusKey ==
 
== ImportLotusKey ==
Wrapper for [[SMC#ImportLotusKey|ImportLotusKey SMC]].
+
Wrapper for [[SMC#DecryptAndImportLotusKey|DecryptAndImportLotusKey SMC]].
    
Takes an input type-0x9 buffer '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
 
Takes an input type-0x9 buffer '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
Line 87: Line 87:  
Decrypts '''DataIn''' with a key generated from '''AccessKey''' and '''KeySource''' and imports it for later usage.
 
Decrypts '''DataIn''' with a key generated from '''AccessKey''' and '''KeySource''' and imports it for later usage.
   −
[5.0.0+] The '''Version''' argument was removed and this now calls the [[SMC#ReEncryptRsaPrivateKey|ReEncryptRsaPrivateKey SMC]] instead.
+
[5.0.0+] The '''Version''' argument was removed and this now calls the [[SMC#ReencryptDeviceUniqueData|ReencryptDeviceUniqueData SMC]] instead.
    
== DecryptLotusMessage ==
 
== DecryptLotusMessage ==
 
Takes 3 input type-0x9 buffers '''DataIn''', '''ModIn''' and '''LabelHashIn'''.
 
Takes 3 input type-0x9 buffers '''DataIn''', '''ModIn''' and '''LabelHashIn'''.
   −
Uses the [[SMC#SecureExpMod|SecureExpMod SMC]] to decrypt '''DataIn''' using the private key imported with [[#ImportLotusKey]] and the supplied '''ModIn''' and '''LabelHashIn'''.
+
Uses the [[SMC#ModularExponentiateByStorageKey|ModularExponentiateByStorageKey SMC]] to decrypt '''DataIn''' using the private key imported with [[#ImportLotusKey]] and the supplied '''ModIn''' and '''LabelHashIn'''.
    
== IsDevelopment ==
 
== IsDevelopment ==
Line 104: Line 104:  
Takes an input 16-byte '''KeySource''' and two input u32s '''Generation''' and '''Option'''. Returns an output 16-byte '''AesKey'''.
 
Takes an input 16-byte '''KeySource''' and two input u32s '''Generation''' and '''Option'''. Returns an output 16-byte '''AesKey'''.
   −
== DecryptRsaPrivateKey ==
+
== DecryptDeviceUniqueData ==
Wrapper for [[SMC#DecryptRsaPrivateKey|DecryptRsaPrivateKey SMC]].
+
Wrapper for [[SMC#DecryptDeviceUniqueData|DecryptDeviceUniqueData SMC]].
    
Takes an output type-0xA buffer '''DataOut''', an input type-0x9 '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
 
Takes an output type-0xA buffer '''DataOut''', an input type-0x9 '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
Line 113: Line 113:  
Used by [[SSL_services|SSL]] for TLS client-privk.
 
Used by [[SSL_services|SSL]] for TLS client-privk.
   −
[5.0.0+] The '''Version''' argument was removed and this now calls [[SMC#DecryptOrImportRsaPrivateKey|DecryptOrImportRsaPrivateKey SMC]] instead.
+
[5.0.0+] The '''Version''' argument was removed.
    
== DecryptAesKey ==
 
== DecryptAesKey ==
Line 137: Line 137:     
== ImportEsKey ==
 
== ImportEsKey ==
Wrapper for [[SMC#ImportEsKey|ImportEsKey SMC]].
+
Wrapper for [[SMC#DecryptAndImportEsDeviceKey|DecryptAndImportEsDeviceKey SMC]].
    
Takes an input type-0x9 buffer '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
 
Takes an input type-0x9 buffer '''DataIn''', an input 16-byte '''AccessKey''', an input 16-byte '''KeySource''' and an input u32 '''Version''' (0 for normal keys or 1 for extended keys).
Line 143: Line 143:  
Decrypts '''DataIn''' with a key generated from '''AccessKey''' and '''KeySource''' and imports it for later usage.
 
Decrypts '''DataIn''' with a key generated from '''AccessKey''' and '''KeySource''' and imports it for later usage.
   −
[5.0.0+] The '''Version''' argument was removed and this now calls the [[SMC#ReEncryptRsaPrivateKey|ReEncryptRsaPrivateKey SMC]] instead.
+
[5.0.0+] The '''Version''' argument was removed and this now calls the [[SMC#ReencryptDeviceUniqueData|ReencryptDeviceUniqueData SMC]] instead.
    
== UnwrapTitleKey ==
 
== UnwrapTitleKey ==
Wrapper for [[SMC#UnwrapTitleKey|UnwrapTitleKey SMC]].
+
Wrapper for [[SMC#PrepareEsDeviceUniqueKey|PrepareEsDeviceUniqueKey SMC]].
    
Takes an output type-0xA buffer '''DataOut''' and 3 input type-0x9 buffers '''DataIn''', '''ModIn''' and '''LabelHashIn'''. Returns an output u32 '''DataOutSize'''.
 
Takes an output type-0xA buffer '''DataOut''' and 3 input type-0x9 buffers '''DataIn''', '''ModIn''' and '''LabelHashIn'''. Returns an output u32 '''DataOutSize'''.
Line 155: Line 155:     
== LoadTitleKey ==
 
== LoadTitleKey ==
Wrapper for [[SMC#LoadTitleKey|LoadTitleKey SMC]].
+
Wrapper for [[SMC#LoadPreparedAesKey|LoadPreparedAesKey SMC]].
    
Takes an input u32 '''Keyslot''' and an input 16-byte '''AccessKey'''.
 
Takes an input u32 '''Keyslot''' and an input 16-byte '''AccessKey'''.
Line 162: Line 162:     
== UnwrapCommonTitleKey ==
 
== UnwrapCommonTitleKey ==
Wrapper for [[SMC#UnwrapCommonTitleKey|UnwrapCommonTitleKey SMC]].
+
Wrapper for [[SMC#PrepareEsCommonKey|PrepareEsCommonKey SMC]].
    
Takes an input 16-byte '''KeySource'''. Returns an output 16-byte '''AccessKey'''.
 
Takes an input 16-byte '''KeySource'''. Returns an output 16-byte '''AccessKey'''.
Line 173: Line 173:  
Returns error 0xD01A if all keyslots are taken.
 
Returns error 0xD01A if all keyslots are taken.
   −
== FreeAesKeyslot ==
+
== DeallocateAesKeySlot ==
 
Takes an input u32 '''Keyslot'''.
 
Takes an input u32 '''Keyslot'''.
   Line 191: Line 191:  
[4.0.0+] Returns 0xD61A if a value has not previously been set and unsets the value after getting it.
 
[4.0.0+] Returns 0xD61A if a value has not previously been set and unsets the value after getting it.
   −
== LoadElicenseKey ==
+
== LoadPreparedAesKey ==
 
Same as [[#LoadTitleKey|LoadTitleKey]].
 
Same as [[#LoadTitleKey|LoadTitleKey]].
   Line 203: Line 203:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 229: Line 229:  
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
|-
 
|-
| 22 || [2.0.0+] [[#FreeAesKeyslot]]
+
| 22 || [2.0.0+] [[#DeallocateAesKeySlot]]
 
|-
 
|-
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
Line 243: Line 243:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 269: Line 269:  
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
|-
 
|-
| 22 || [2.0.0+] [[#FreeAesKeyslot]]
+
| 22 || [2.0.0+] [[#DeallocateAesKeySlot]]
 
|-
 
|-
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
Line 293: Line 293:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 319: Line 319:  
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
|-
 
|-
| 22 || [2.0.0+] [[#FreeAesKeyslot]]
+
| 22 || [2.0.0+] [[#DeallocateAesKeySlot]]
 
|-
 
|-
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
|-
 
|-
| 13 || [[#DecryptRsaPrivateKey]]
+
| 13 || [[#DecryptDeviceUniqueData]]
 
|-
 
|-
| 26 || [5.0.0+] ImportSslKey
+
| 26 || [5.0.0+] DecryptAndStoreSslClientCertKey
 
|-
 
|-
| 27 || [5.0.0+] SslExpMod
+
| 27 || [5.0.0+] ModularExponentiateWithSslClientCertKey
 
|}
 
|}
   Line 339: Line 339:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 365: Line 365:  
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
|-
 
|-
| 22 || [2.0.0+] [[#FreeAesKeyslot]]
+
| 22 || [2.0.0+] [[#DeallocateAesKeySlot]]
 
|-
 
|-
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
|-
 
|-
| 13 || [[#DecryptRsaPrivateKey]]
+
| 13 || [[#DecryptDeviceUniqueData]]
 
|-
 
|-
 
| 17 || [[#ImportEsKey]]
 
| 17 || [[#ImportEsKey]]
Line 375: Line 375:  
| 18 || [[#UnwrapTitleKey]]
 
| 18 || [[#UnwrapTitleKey]]
 
|-
 
|-
| 20 || [2.0.0+] [[#UnwrapCommonTitleKey]]
+
| 20 || [2.0.0+] [[#PrepareEsCommonKey]]
 
|-
 
|-
| 28 || [5.0.0+] ImportDrmKey
+
| 28 || [5.0.0+] DecryptAndStoreDrmDeviceCertKey
 
|-
 
|-
| 29 || [5.0.0+] DrmExpMod
+
| 29 || [5.0.0+] ModularExponentiateWithDrmDeviceCertKey
 
|-
 
|-
| 31 || [6.0.0+] UnwrapElicenseKey
+
| 31 || [6.0.0+] PrepareEsArchiveKey
 
|-
 
|-
| 32 || [6.0.0+] [[#LoadElicenseKey]]
+
| 32 || [6.0.0+] [[#LoadPreparedAesKey]]
 
|}
 
|}
   Line 395: Line 395:  
| 0 || [[#GetConfig]]
 
| 0 || [[#GetConfig]]
 
|-
 
|-
| 1 || [[#ExpMod]]
+
| 1 || [[#ModularExponentiate]]
 
|-
 
|-
 
| 5 || [[#SetConfig]]
 
| 5 || [[#SetConfig]]
Line 421: Line 421:  
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
| 21 || [2.0.0+] [[#AllocateAesKeyslot]]
 
|-
 
|-
| 22 || [2.0.0+] [[#FreeAesKeyslot]]
+
| 22 || [2.0.0+] [[#DeallocateAesKeySlot]]
 
|-
 
|-
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
| 23 || [2.0.0+] [[#GetAesKeyslotAvailableEvent]]
 
|-
 
|-
| 13 || [[#DecryptRsaPrivateKey]]
+
| 13 || [[#DecryptDeviceUniqueData]]
 
|-
 
|-
| 30 || [5.0.0+] ReEncryptRsaPrivateKey
+
| 30 || [5.0.0+] ReencryptDeviceUniqueData
 
|}
 
|}
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu