mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-07-06 21:31:27 +00:00
* Refactor NpTicket parser and add NpTicket signature documentation * Update TickerBuilder chaining style * Fix SectionHeader position returning wrong value * Don't attempt to parse ticket if it is less than 8 bytes
48 lines
No EOL
1.5 KiB
C#
48 lines
No EOL
1.5 KiB
C#
using LBPUnion.ProjectLighthouse.Tickets;
|
|
using LBPUnion.ProjectLighthouse.Tickets.Signature;
|
|
using LBPUnion.ProjectLighthouse.Types.Users;
|
|
using Xunit;
|
|
|
|
namespace LBPUnion.ProjectLighthouse.Tests.Unit;
|
|
|
|
[Trait("Category", "Unit")]
|
|
public class TicketTests
|
|
{
|
|
[Fact]
|
|
public void CanReadTicket()
|
|
{
|
|
TicketBuilder builder = new TicketBuilder()
|
|
.SetCountry("br")
|
|
.SetUserId(21)
|
|
.SetDomain("us")
|
|
.SetStatus(0)
|
|
.SetIssuerId(0x74657374)
|
|
.setExpirationTime(ulong.MaxValue)
|
|
.SetUsername("unittest")
|
|
.SetIssueTime(0)
|
|
.SetTitleId("UP9000-BCUS98245_00");
|
|
|
|
byte[] ticketData = builder.Build();
|
|
|
|
NPTicket? ticket = NPTicket.CreateFromBytes(ticketData);
|
|
Assert.NotNull(ticket);
|
|
Assert.Equal((ulong)0, ticket.IssueTime);
|
|
Assert.Equal(ulong.MaxValue, ticket.ExpireTime);
|
|
Assert.Equal("unittest", ticket.Username);
|
|
Assert.Equal(GameVersion.LittleBigPlanet2, ticket.GameVersion);
|
|
Assert.Equal((ulong)0x74657374, ticket.IssuerId);
|
|
Assert.Equal((ulong)21, ticket.UserId);
|
|
}
|
|
|
|
[Fact]
|
|
public void CanVerifyTicketSignature()
|
|
{
|
|
TicketBuilder builder = new();
|
|
|
|
byte[] ticketData = builder.Build();
|
|
|
|
NPTicket? ticket = NPTicket.CreateFromBytes(ticketData);
|
|
Assert.NotNull(ticket);
|
|
Assert.True(new UnitTestSignatureVerifier(ticket).ValidateSignature());
|
|
}
|
|
} |