Difference between revisions of "Auth Applet"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Created page with "This is the Parental Controls authentication applet. See AM_services#Library_Applets. == Library Applet Versions == {| class="wikitable" border="1" |- ! System Version ||...")
 
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is the Parental Controls authentication applet.
+
This is the Parental Controls authentication applet. This applet is used by [[qlaunch]].
 
See [[AM_services#Library_Applets]].
 
See [[AM_services#Library_Applets]].
  
Line 29: Line 29:
  
 
Types:
 
Types:
* 0x0 <code>ShowParentalAuthentication</code>: With the <code>(bool)</code> func, arg0 is set to the input bool, with the rest set to zero.
+
* 0x0 <code>ShowParentalAuthentication</code>: With the <code>(bool)</code> func, arg0 is set to the input bool, with the rest set to zero. false = temporarily disable Parental Controls. true = validate the input PIN.
** With the other func available with [4.0.0+], 3 u8s from the input struct are copied to the u8 arg fields. The <code>ShowAuthenticatorForConfiguration</code> wrapper func for this passes the following arg* values: 1, 0, 1.
+
** With the other func available with [4.0.0+], 3 u8s from the input struct are copied to the u8 arg fields. The <code>ShowAuthenticatorForConfiguration</code> wrapper func for this passes the following arg* values: 1, 0, 1. This is for checking the PIN, used when changing system-settings.
* 0x1 <code>RegisterParentalPasscode</code>: arg* fields are all-zero.
+
* 0x1 <code>RegisterParentalPasscode</code>: arg* fields are all-zero. This is for registering the Parental Controls PIN.
* 0x2 <code>ChangeParentalPasscode</code>: arg* fields are all-zero.
+
* 0x2 <code>ChangeParentalPasscode</code>: arg* fields are all-zero. This is for changing the Parental Controls PIN.
 +
 
 +
If non-Register is used where a PIN is not already registered, the applet will throw a fatalerr once the user finishes entering the PIN (unknown for <code>ShowAuthenticatorForConfiguration</code>).
  
 
== Usage ==  
 
== Usage ==  

Latest revision as of 00:49, 2 April 2019

This is the Parental Controls authentication applet. This applet is used by qlaunch. See AM_services#Library_Applets.

Library Applet Versions

System Version Value
[1.0.0+] 0x1
[4.0.0+] 0x2

Arg

Offset Size Description
0x0 0x4 Always set to 0 by the user-process.
0x4 0x4 Type
0x8 0x3 u8 arg0, arg1, arg2
0xB 0x1 Padding

The arg storage is 0xC-bytes.

Types:

  • 0x0 ShowParentalAuthentication: With the (bool) func, arg0 is set to the input bool, with the rest set to zero. false = temporarily disable Parental Controls. true = validate the input PIN.
    • With the other func available with [4.0.0+], 3 u8s from the input struct are copied to the u8 arg fields. The ShowAuthenticatorForConfiguration wrapper func for this passes the following arg* values: 1, 0, 1. This is for checking the PIN, used when changing system-settings.
  • 0x1 RegisterParentalPasscode: arg* fields are all-zero. This is for registering the Parental Controls PIN.
  • 0x2 ChangeParentalPasscode: arg* fields are all-zero. This is for changing the Parental Controls PIN.

If non-Register is used where a PIN is not already registered, the applet will throw a fatalerr once the user finishes entering the PIN (unknown for ShowAuthenticatorForConfiguration).

Usage

User-processes should push a common arguments struct as well as the #Arg struct. Once the applet finishes running successfully, it will return an output 4-byte storage containing the Result (an error is thrown if no storage is available / storage size is 0).