Skip to content

Commit 71af2c5

Browse files
committed
Block leaked nands while allowing default dolphin ID
1 parent 3df1156 commit 71af2c5

File tree

1 file changed

+30
-23
lines changed

1 file changed

+30
-23
lines changed

gpcm/login.go

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,22 @@ var msPublicKey = []byte{
5353

5454
var commonDeviceIds = []uint32{
5555
0x02000001, // Internal use (leaked)
56-
0x0403ac68, // Dolphin default
56+
57+
// Commented because we allow this, but will still ban other keys
58+
// 0x0403ac68, // Dolphin default
5759

5860
// Publicly shared key dumps
61+
0x0204cef9,
5962
0x038c864b,
6063
0x040e3f97,
6164
0x04cb7515,
6265
0x066deb49,
6366
0x06bcc32d,
6467
0x06d0437a,
6568
0x089120c8,
69+
0x0a305428,
70+
0x0a447b97,
71+
0x0a1e97cf,
6672
0x0e19d5ed,
6773
0x0e31482b,
6874
0x2428a8cb,
@@ -474,31 +480,32 @@ func (g *GameSpySession) verifyExLoginInfo(command common.GameSpyCommand, authTo
474480

475481
g.DeviceId = deviceId
476482

477-
if !allowDefaultDolphinKeys {
478-
// Check common device IDs
479-
for _, defaultDeviceId := range commonDeviceIds {
480-
if deviceId != defaultDeviceId {
481-
continue
482-
}
483+
// We allow default dolphin keys, but not leaked nands. Check leaked nands
484+
// and common keys anyway.
483485

484-
if strings.HasPrefix(g.HostPlatform, "Dolphin") {
485-
g.replyError(GPError{
486-
ErrorCode: ErrLogin.ErrorCode,
487-
ErrorString: "Prohibited device ID used in signature.",
488-
Fatal: true,
489-
WWFCMessage: WWFCMsgDolphinSetupRequired,
490-
})
491-
} else {
492-
g.replyError(GPError{
493-
ErrorCode: ErrLogin.ErrorCode,
494-
ErrorString: "Prohibited device ID used in signature.",
495-
Fatal: true,
496-
WWFCMessage: WWFCMsgUnknownLoginError,
497-
})
498-
}
486+
// Check common device IDs
487+
for _, defaultDeviceId := range commonDeviceIds {
488+
if deviceId != defaultDeviceId {
489+
continue
490+
}
499491

500-
return 0
492+
if strings.HasPrefix(g.HostPlatform, "Dolphin") {
493+
g.replyError(GPError{
494+
ErrorCode: ErrLogin.ErrorCode,
495+
ErrorString: "Prohibited device ID used in signature.",
496+
Fatal: true,
497+
WWFCMessage: WWFCMsgDolphinSetupRequired,
498+
})
499+
} else {
500+
g.replyError(GPError{
501+
ErrorCode: ErrLogin.ErrorCode,
502+
ErrorString: "Prohibited device ID used in signature.",
503+
Fatal: true,
504+
WWFCMessage: WWFCMsgUnknownLoginError,
505+
})
501506
}
507+
508+
return 0
502509
}
503510

504511
return deviceId

0 commit comments

Comments
 (0)