SSL services: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| Line 1: | Line 1: | ||
=ssl=  | = ssl =  | ||
This is "nn::ssl::sf::ISslService".  | |||
=Client cert+privk=  | {| class="wikitable" border="1"  | ||
|-  | |||
! Cmd || Name  | |||
|-  | |||
| 0 || CreateContext  | |||
|-  | |||
| 1 || GetContextCount  | |||
|-  | |||
| 2 || GetCertificates  | |||
|-  | |||
| 3 || GetCertificateBufSize  | |||
|-  | |||
| 4 || DebugIoctl  | |||
|-  | |||
| 5 || SetInterfaceVersion  | |||
|}  | |||
== ISslContext ==  | |||
{| class="wikitable" border="1"  | |||
|-  | |||
! Cmd || Name  | |||
|-  | |||
| 0 || SetOption  | |||
|-  | |||
| 1 || GetOption  | |||
|-  | |||
| 2 || CreateConnection  | |||
|-  | |||
| 3 || GetConnectionCount  | |||
|-  | |||
| 4 || ImportServerPki  | |||
|-  | |||
| 5 || ImportClientPki  | |||
|-  | |||
| 6 || RemoveServerPki  | |||
|-  | |||
| 7 || RemoveClientPki  | |||
|-  | |||
| 8 || RegisterInternalPki  | |||
|-  | |||
| 9 || AddPolicyOid  | |||
|-  | |||
| 10 || ImportCrl  | |||
|-  | |||
| 11 || RemoveCrl  | |||
|}  | |||
=== ISslConnection ===  | |||
{| class="wikitable" border="1"  | |||
|-  | |||
! Cmd || Name  | |||
|-  | |||
| 0 || SetSocketDescriptor  | |||
|-  | |||
| 1 || SetHostName  | |||
|-  | |||
| 2 || SetVerifyOption  | |||
|-  | |||
| 3 || SetIoMode  | |||
|-  | |||
| 4 || GetSocketDescriptor  | |||
|-  | |||
| 5 || GetHostName  | |||
|-  | |||
| 6 || GetVerifyOption  | |||
|-  | |||
| 7 || GetIoMode  | |||
|-  | |||
| 8 || DoHandshake  | |||
|-  | |||
| 9 || DoHandshakeGetServerCert  | |||
|-  | |||
| 10 || Read  | |||
|-  | |||
| 11 || Write  | |||
|-  | |||
| 12 || Pending  | |||
|-  | |||
| 13 || Peek  | |||
|-  | |||
| 14 || Poll  | |||
|-  | |||
| 15 || GetVerifyCertError  | |||
|-  | |||
| 16 || GetNeededServerCertBufferSize  | |||
|-  | |||
| 17 || SetSessionCacheMode  | |||
|-  | |||
| 18 || GetSessionCacheMode  | |||
|-  | |||
| 19 || FlushSessionCache  | |||
|-  | |||
| 20 || SetRenegotiationMode  | |||
|-  | |||
| 21 || GetRenegotiationMode  | |||
|-  | |||
| 22 || SetOption  | |||
|-  | |||
| 23 || GetOption  | |||
|-  | |||
| 24 || GetVerifyCertErrors  | |||
|}  | |||
= Client cert+privk =  | |||
SSL-sysmodule uses [[Settings_services|set:cal]] [[Settings_services#GetSslKey|GetSslKey]] and [[Settings_services#GetSslCert|GetSslCert]]. The rest of this section documents handling for the former, which can be decrypted with [[SPL_services|SPL]].  | SSL-sysmodule uses [[Settings_services|set:cal]] [[Settings_services#GetSslKey|GetSslKey]] and [[Settings_services#GetSslCert|GetSslCert]]. The rest of this section documents handling for the former, which can be decrypted with [[SPL_services|SPL]].  | ||
| Line 9: | Line 113: | ||
* 0x100+0x10: If the u32 actual_size is less than (u32)-0x11, and the last 0x10-bytes of the actual-data are all-zero, the data is copied to the output as raw plaintext. If a non-zero byte is found, it will continue with [[SPL_services|SPL]] usage, skipping over the SPL block for the devunit flag. In this case, key=key0 and the flag passed to SPL later is set to 0.  | * 0x100+0x10: If the u32 actual_size is less than (u32)-0x11, and the last 0x10-bytes of the actual-data are all-zero, the data is copied to the output as raw plaintext. If a non-zero byte is found, it will continue with [[SPL_services|SPL]] usage, skipping over the SPL block for the devunit flag. In this case, key=key0 and the flag passed to SPL later is set to 0.  | ||
* 0x100+0x30: Size must match this if it's not the above, otherwise error 0xC81A is returned. The flag passed to SPL later is set to 1 in this case. Runs the devunit-flag-block: uses [[SPL_services#SPL#GetDevunitFlag]]. key = key1 when out_flag!=0, key2 otherwise.  | * 0x100+0x30: Size must match this if it's not the above, otherwise error 0xC81A is returned. The flag passed to SPL later is set to 1 in this case. Runs the devunit-flag-block: uses [[SPL_services#SPL#GetDevunitFlag]]. key = key1 when out_flag!=0, key2 otherwise.  | ||
[[Category:Services]]  | |||