SSL services: Difference between revisions

No edit summary
Line 118: Line 118:
With [[#ContextOption]] value 1, the s32 has to be 0 or 1 (state field is set to the s32 value).
With [[#ContextOption]] value 1, the s32 has to be 0 or 1 (state field is set to the s32 value).


On old sysvers this is stubbed.
Prior to 4.x this is stubbed.


=== GetOption ===
=== GetOption ===
Takes an input [[#ContextOption]], returns an output s32.
Takes an input [[#ContextOption]], returns an output s32.


On old sysvers this is stubbed.
Prior to 4.x this is stubbed.


=== CreateConnection ===
=== CreateConnection ===
Line 423: Line 423:
This is the "nn::ssl::sf::VerifyOption" enum. This is a bitmask.
This is the "nn::ssl::sf::VerifyOption" enum. This is a bitmask.


Originally ssl-sysmodule ([[#SetVerifyOption]]) just wrote the input field to state. With newer sysvers there's now validation for the input, with the value written to state masked with {allowed bitmask}. When [[#SetInterfaceVersion|InterfaceVersion]] is >=0x2, the low 2-bits of VerifyOption must be set, unless {state flag for [[#OptionType]] value 2} is set or [?+] {bool [[#SetDebugOption|DebugOption]] state flag} is set, otherwise an error is thrown. [6.0.0+]: Following that, if VerifyOption bit4 is set, then VerifyOption & 0x15 must match 0x15 otherwise an error is thrown.
Originally ssl-sysmodule ([[#SetVerifyOption]]) just wrote the input field to state. With [5.0.0+] there's now validation for the input, with the value written to state masked with {allowed bitmask}. When [[#SetInterfaceVersion|InterfaceVersion]] is >=0x2, the low 2-bits of VerifyOption must be set, unless {state flag for [[#OptionType]] value 2} is set or [9.0.0+] {bool [[#SetDebugOption|DebugOption]] state flag} is set, otherwise an error is thrown. [6.0.0+]: Following that, if VerifyOption bit4 is set, then VerifyOption & 0x15 must match 0x15 otherwise an error is thrown.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 511: Line 511:
| 0 ||  
| 0 ||  
|-
|-
| 1 || [?+]
| 1 || [3.0.0+]
|-
|-
| 2 || [?+] This flag is checked by [[#VerifyOption|SetVerifyOption]].
| 2 || [5.0.0+] This flag is checked by [[#VerifyOption|SetVerifyOption]].
|-
|-
| 3 || [?+] Only available with [[#SetOption_2|SetOption]].
| 3 || [9.0.0+] Only available with [[#SetOption_2|SetOption]].
|}
|}