public static void addTicketDateParam(SceNpTicket ticket, long time) { sbyte[] bytes = new sbyte[8]; Utilities.writeUnaligned32(bytes, 0, Utilities.endianSwap32((int)(time >> 32))); Utilities.writeUnaligned32(bytes, 4, Utilities.endianSwap32((int)time)); ticket.parameters.Add(new SceNpTicket.TicketParam(SceNpTicket.TicketParam.PARAM_TYPE_DATE, bytes)); }
public static void addTicketParam(SceNpTicket ticket, int type, string value, int Length) { sbyte[] stringBytes = value.GetBytes(Charset.forName("ASCII")); sbyte[] bytes = new sbyte[Length]; Array.Copy(stringBytes, 0, bytes, 0, System.Math.Min(Length, stringBytes.Length)); ticket.parameters.Add(new SceNpTicket.TicketParam(type, bytes)); }
public virtual int sceNpAuthGetTicketParam(TPointer ticketBuffer, int ticketLength, int paramNumber, TPointer buffer) { // This clear is always done, even when an error is returned buffer.clear(256); if (paramNumber < 0 || paramNumber >= SceNpTicket.NUMBER_PARAMETERS) { return(SceKernelErrors.ERROR_NP_MANAGER_INVALID_ARGUMENT); } if (ticketBuffer.getValue32() == 0) { // This is an empty ticket, do no analyze it //if (log.DebugEnabled) { Console.WriteLine(string.Format("sceNpAuthGetTicketParam returning empty param from empty ticket")); } } else { SceNpTicket ticket = new SceNpTicket(); ticket.read(ticketBuffer); //if (log.DebugEnabled) { Console.WriteLine(string.Format("sceNpAuthGetTicketParam ticket: {0}", ticket)); } SceNpTicket.TicketParam ticketParam = ticket.parameters[paramNumber]; ticketParam.writeForPSP(buffer); } return(0); }
public static void addTicketLongParam(SceNpTicket ticket, long value) { sbyte[] bytes = new sbyte[8]; Utilities.writeUnaligned32(bytes, 0, Utilities.endianSwap32((int)(value >> 32))); Utilities.writeUnaligned32(bytes, 4, Utilities.endianSwap32((int)value)); ticket.parameters.Add(new SceNpTicket.TicketParam(SceNpTicket.TicketParam.PARAM_TYPE_LONG, bytes)); }
public static void addTicketParam(SceNpTicket ticket, int value) { sbyte[] bytes = new sbyte[4]; Utilities.writeUnaligned32(bytes, 0, Utilities.endianSwap32(value)); ticket.parameters.Add(new SceNpTicket.TicketParam(SceNpTicket.TicketParam.PARAM_TYPE_INT, bytes)); }
public static void addTicketParam(SceNpTicket ticket, string value, int Length) { addTicketParam(ticket, SceNpTicket.TicketParam.PARAM_TYPE_STRING_ASCII, value, Length); }
public virtual int sceNpAuthGetTicket(int id, TPointer buffer, int Length) { int result; if (useDummyTicket) { SceNpTicket ticket = new SceNpTicket(); ticket.version = 0x00000121; ticket.size = 0xF0; addTicketParam(ticket, "XXXXXXXXXXXXXXXXXXXX", 20); addTicketParam(ticket, 0); long now = DateTimeHelper.CurrentUnixTimeMillis(); addTicketDateParam(ticket, now); addTicketDateParam(ticket, now + 10 * 60 * 1000); // now + 10 minutes addTicketLongParam(ticket, 0L); addTicketParam(ticket, SceNpTicket.TicketParam.PARAM_TYPE_STRING, "DummyOnlineID", 32); addTicketParam(ticket, "gb", 4); addTicketParam(ticket, SceNpTicket.TicketParam.PARAM_TYPE_STRING, "XX", 4); addTicketParam(ticket, serviceId, 24); int status = 0; if (Modules.sceNpModule.parentalControl == sceNp.PARENTAL_CONTROL_ENABLED) { status |= STATUS_ACCOUNT_PARENTAL_CONTROL_ENABLED; } status |= (Modules.sceNpModule.UserAge & 0x7F) << 24; addTicketParam(ticket, status); addTicketParam(ticket); addTicketParam(ticket); ticket.unknownBytes = new sbyte[72]; //if (log.DebugEnabled) { Console.WriteLine(string.Format("sceNpAuthGetTicket returning dummy ticket: {0}", ticket)); } ticket.write(buffer); result = ticket.@sizeof(); } else if (ticketBytesLength > 0) { result = System.Math.Min(ticketBytesLength, Length); IMemoryWriter memoryWriter = MemoryWriter.getMemoryWriter(buffer.Address, result, 1); for (int i = 0; i < result; i++) { memoryWriter.writeNext(ticketBytes[i] & 0xFF); } //if (log.DebugEnabled) { Console.WriteLine(string.Format("sceNpAuthGetTicket returning real ticket: {0}", Utilities.getMemoryDump(buffer.Address, result))); } } else { buffer.clear(Length); result = Length; //if (log.DebugEnabled) { Console.WriteLine(string.Format("sceNpAuthGetTicket returning empty ticket")); } } return(result); }
public static void addTicketParam(SceNpTicket ticket) { ticket.parameters.Add(new SceNpTicket.TicketParam(SceNpTicket.TicketParam.PARAM_TYPE_NULL, new sbyte[0])); }