From 36a85debe931f2915e1f4818c102cde6388bae58 Mon Sep 17 00:00:00 2001 From: Joel16 Date: Fri, 27 Oct 2017 11:29:21 -0500 Subject: [PATCH] Add CFGI_GetLocalFriendCodeSeed --- libctru/include/3ds/services/cfgu.h | 6 ++++++ libctru/source/services/cfgu.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libctru/include/3ds/services/cfgu.h b/libctru/include/3ds/services/cfgu.h index 426012b..cc73667 100644 --- a/libctru/include/3ds/services/cfgu.h +++ b/libctru/include/3ds/services/cfgu.h @@ -182,3 +182,9 @@ Result CFGI_VerifySigSecureInfo(void); * @param serial Pointer to output the serial to. (This is normally 0xF) */ Result CFGI_SecureInfoGetSerialNumber(u8 *serial); + +/** + * @brief Gets the 64-bit local friend code seed. + * @param seed Pointer to write the friend code seed to. + */ +Result CFGI_GetLocalFriendCodeSeed(u64* seed); diff --git a/libctru/source/services/cfgu.c b/libctru/source/services/cfgu.c index f9dced2..04ea902 100644 --- a/libctru/source/services/cfgu.c +++ b/libctru/source/services/cfgu.c @@ -344,3 +344,17 @@ Result CFGI_SecureInfoGetSerialNumber(u8 *serial) return (Result)cmdbuf[1]; } + +Result CFGI_GetLocalFriendCodeSeed(u64* seed) +{ + Result ret = 0; + u32 *cmdbuf = getThreadCommandBuffer(); + + cmdbuf[0] = IPC_MakeHeader(0x405,0,0); // 0x4050000 + + if(R_FAILED(ret = svcSendSyncRequest(cfguHandle)))return ret; + + *seed = (u64)cmdbuf[2] | (u64)cmdbuf[3] << 32; + + return (Result)cmdbuf[1]; +}