mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-11 22:38:39 +00:00
Refactor NpTicket parser and add NpTicket signature documentation (#784)
* 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
This commit is contained in:
parent
8b0aed9a61
commit
2f11731a8e
16 changed files with 506 additions and 247 deletions
48
ProjectLighthouse.Tests/Unit/TicketTests.cs
Normal file
48
ProjectLighthouse.Tests/Unit/TicketTests.cs
Normal file
|
@ -0,0 +1,48 @@
|
|||
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());
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue