Fix ticket listing and minor libnx update

This commit is contained in:
HookedBehemoth 2020-03-16 00:25:15 +01:00
parent 9bbef1cc69
commit d91923accc
6 changed files with 33 additions and 76 deletions

View file

@ -17,56 +17,48 @@ void _esCleanup() {
serviceClose(&g_esSrv);
}
Result esCountCommonTicket(u32 *num_tickets)
Result esCountCommonTicket(u32 *out_count)
{
struct {
u32 num_tickets;
} out;
u32 num_tickets;
Result rc = serviceDispatchOut(&g_esSrv, 9, out);
if (R_SUCCEEDED(rc) && num_tickets) *num_tickets = out.num_tickets;
Result rc = serviceDispatchOut(&g_esSrv, 9, num_tickets);
if (R_SUCCEEDED(rc) && out_count) *out_count = num_tickets;
return rc;
}
Result esCountPersonalizedTicket(u32 *num_tickets)
Result esCountPersonalizedTicket(u32 *out_count)
{
struct {
u32 num_tickets;
} out;
u32 num_tickets;
Result rc = serviceDispatchOut(&g_esSrv, 10, out);
if (R_SUCCEEDED(rc) && num_tickets) *num_tickets = out.num_tickets;
Result rc = serviceDispatchOut(&g_esSrv, 10, num_tickets);
if (R_SUCCEEDED(rc) && out_count) *out_count = num_tickets;
return rc;
}
Result esListCommonTicket(u32 *numRightsIdsWritten, NcmRightsId *outBuf, size_t bufSize)
Result esListCommonTicket(u32 *numRightsIdsWritten, RightsId *outBuf, size_t bufSize)
{
struct {
u32 num_rights_ids_written;
} out;
u32 num_rights_ids_written;
Result rc = serviceDispatchInOut(&g_esSrv, 11, *numRightsIdsWritten, out,
Result rc = serviceDispatchOut(&g_esSrv, 11, num_rights_ids_written,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffers = { { outBuf, bufSize } },
);
if (R_SUCCEEDED(rc) && numRightsIdsWritten) *numRightsIdsWritten = out.num_rights_ids_written;
if (R_SUCCEEDED(rc) && numRightsIdsWritten) *numRightsIdsWritten = num_rights_ids_written;
return rc;
}
Result esListPersonalizedTicket(u32 *numRightsIdsWritten, NcmRightsId *outBuf, size_t bufSize)
Result esListPersonalizedTicket(u32 *numRightsIdsWritten, RightsId *outBuf, size_t bufSize)
{
struct {
u32 num_rights_ids_written;
} out;
u32 num_rights_ids_written;
Result rc = serviceDispatchInOut(&g_esSrv, 12, *numRightsIdsWritten, out,
Result rc = serviceDispatchOut(&g_esSrv, 12, num_rights_ids_written,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffers = { { outBuf, bufSize } },
);
if (R_SUCCEEDED(rc) && numRightsIdsWritten) *numRightsIdsWritten = out.num_rights_ids_written;
if (R_SUCCEEDED(rc) && numRightsIdsWritten) *numRightsIdsWritten = num_rights_ids_written;
return rc;
}
}

View file

@ -3,10 +3,14 @@
#include <switch/types.h>
#include <switch/services/ncm.h>
typedef struct {
u8 c[0x10];
} RightsId;
Result esInitialize();
void esExit();
Result esCountCommonTicket(u32 *num_tickets); //9
Result esCountPersonalizedTicket(u32 *num_tickets); // 10
Result esListCommonTicket(u32 *numRightsIdsWritten, NcmRightsId *outBuf, size_t bufSize);
Result esListPersonalizedTicket(u32 *numRightsIdsWritten, NcmRightsId *outBuf, size_t bufSize);
Result esListCommonTicket(u32 *numRightsIdsWritten, RightsId *outBuf, size_t bufSize);
Result esListPersonalizedTicket(u32 *numRightsIdsWritten, RightsId *outBuf, size_t bufSize);

View file

@ -1,26 +0,0 @@
#include "set_ext.h"
#include "../service_guard.h"
#include <switch/services/sm.h>
#include <switch/types.h>
static Service g_setcalSrv;
NX_GENERATE_SERVICE_GUARD(setcal);
Result _setcalInitialize() {
return smGetService(&g_setcalSrv, "set:cal");
}
void _setcalCleanup() {
serviceClose(&g_setcalSrv);
}
Result setcalGetEticketDeviceKey(void *key)
{
return serviceDispatch(&g_setcalSrv, 21,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffers = { { key, 0x244 } },
);
}

View file

@ -1,12 +0,0 @@
#pragma once
#include <switch/result.h>
Result setcalInitialize(void);
void setcalExit(void);
/**
* @brief Gets the extended ETicket RSA-2048 Key from CAL0
* @param key Pointer to 0x244-byte output buffer.
*/
Result setcalGetEticketDeviceKey(void *key);