summaryrefslogtreecommitdiff
path: root/protocols/MSN/src/skylogin/objects.h
blob: 1c11ef9a8ee4f362edf27d5cf49612b590671b68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "common.h"

typedef struct
{
	int		Id;
	uint	Rank;
} ObjListInfos_S;

typedef struct
{
	uint	Family;
	uint	Id;
	union
	{
		Memory_U	Memory;
		uchar	Table[8];		/* Actually DOUBLE int */
		uint	Nbr;
		Host	Addr;
	} Value;
	ObjListInfos_S	ObjListInfos;
}	ObjectDesc;

typedef struct
{
	ushort		Cmd;
	ushort		PacketID;
	ushort		Reply2ID;
	uint		NbObj;
	ObjectDesc	*Objs;
}	SResponse;



#define	 OBJ_FAMILY_NBR		0x00
#define	 OBJ_FAMILY_TABLE	0x01
#define	 OBJ_FAMILY_NETADDR	0x02
#define	 OBJ_FAMILY_STRING	0x03
#define	 OBJ_FAMILY_BLOB	0x04
#define	 OBJ_FAMILY_OBJLIST	0x05
#define  OBJ_FAMILY_INTLIST	0x06

#define	 OBJ_ID_NODEID		0x0D
#define	 OBJ_ID_LPORT		0x10
#define	 OBJ_ID_UPTIME		0x01
#define	 OBJ_ID_STVL		0x23
#define	 OBJ_ID_2000		0x09
#define  OBJ_ID_SK			0x08
#define  OBJ_ID_ZBOOL1		0x0C
#define  OBJ_ID_REQCODE		0x00
#define  OBJ_ID_ZBOOL2		0x02
#define  OBJ_ID_USERNAME	0x04
#define  OBJ_ID_USERPASS	0x05
#define  OBJ_ID_MODULUS		0x21
#define  OBJ_ID_PLATFORM	0x31
#define  OBJ_ID_LANG		0x36
#define  OBJ_ID_VERSION		0x0D
#define  OBJ_ID_PUBADDR		0x0E
#define  OBJ_ID_MISCD		0x33
#define  OBJ_ID_OAUTH		0x3D
#define  OBJ_ID_PARTNERID   0x3E
#define	 OBJ_ID_STACKVER	0x0B
#define	 OBJ_ID_STACKTS		0x0C
#define	 OBJ_ID_PEERLPORT	0x10
#define	 OBJ_ID_PUBNETADDR	0x11
#define	 OBJ_ID_NBCONNECTED	0x09
#define	 OBJ_ID_LOGINANSWER	0x01
#define	 OBJ_ID_CIPHERDLOGD	0x24
#define	 OBJ_ID_LDUSER		0x00
#define	 OBJ_ID_LDEXPIRY	0x04
#define	 OBJ_ID_LDMODULUS	0x01
#define  OBJ_ID_ESAUTHANSWR	0x0A
#define  OBJ_ID_ESHASHLIST	0x35
#define  OBJ_ID_HASH		0x32
#define  OBJ_ID_DISPLAYNAME	0x34
#define  OBJ_ID_UBLOB		0x33
#define  OBJ_ID_INTERNALNAM	0x10
#define  OBJ_ID_BUDDYSTATUS	0x79	// BUDDYSTATUS
#define  OBJ_ID_AUTHCERT	0x03
#define  OBJ_ID_USER2SEARCH	0x00
#define  OBJ_ID_BCMID		0x00
#define  OBJ_ID_BCMVER		0x01
#define  OBJ_ID_SLOTID		0x00
#define	 OBJ_ID_SLOTNBSN	0x07
#define	 OBJ_ID_SLOTSNADDR	0x03
#define	 OBJ_ID_DIRBLOB		0x0B

#define  OBJ_ID_CIRNAME		0x14	// FULLNAME
#define  OBJ_ID_CILANG		0x24	// LANGUAGES
#define  OBJ_ID_CICOUNTRY	0x28	// COUNTRY
#define  OBJ_ID_CIREGION	0x2C	// PROVINCE
#define  OBJ_ID_CIVILLE		0x30	// CITY
#define  OBJ_ID_CILOCATION	0x03
#define  OBJ_ID_CIPSTN_BAL	0x12D	// PSTN_BALANCE
#define  OBJ_ID_CIPSTN_BALC	0x128	// PSTN_BALANCE_CURRENCY
#define  OBJ_ID_CIBIRTHDAY	0x1D	// BIRTHDAY
#define  OBJ_ID_CIPHONE_H	0x34	// PHONE_HOME
#define  OBJ_ID_CIPHONE_O	0x38	// PHONE_OFFICE
#define  OBJ_ID_CIPHONE_M	0x3C	// PHONE_MOBILE
#define  OBJ_ID_CIHOMEPAGE	0x44	// HOMEPAGE
#define  OBJ_ID_CIABOUT		0x48	// ABOUT
#define  OBJ_ID_CIALIASES	0x60	// ALIASES
#define  OBJ_ID_CIMOOD_TEXT	0x68	// MOOD_TEXT
#define  OBJ_ID_CIRICH_MOOD	0x334	// RICH_MOOD_TEXT
#define  OBJ_ID_CITIMEZONE	0x6D	// TIMEZONE

#define  OBJ_ID_AUTHEDBUDD  0x71	// NROF_AUTHED_BUDDIES
#define  OBJ_ID_RCVDAUTHREQ	0x50	// RECEIVEDAUTHREQUEST
#define  OBJ_ID_ISAUTHORIZD 0x5D	// ISAUTHORIZED / ISBLOCKED
//#define  OBJ_ID_DISPLAYNAME 0x84	// DISPLAYNAME
#define  OBJ_ID_ONLINESTAT  0x89	// ONLINESTATUS
#define  OBJ_ID_LASTONLINET 0x8D	// LASTONLINETIMESTAMP
#define  OBJ_ID_CISEX       0x21	// SEX (MALE=1, FEMALE=2, UNKNOWN=0)


#define  OBJ_ID_FWTESTID	0x19
#define  OBJ_ID_FWTESTER	0x11
#define  OBJ_ID_PINGER		0x02
#define  OBJ_ID_TESTED		0x02
#define  OBJ_ID_TESTER		0x00
#define  OBJ_ID_RELAY		0x08
#define  OBJ_ID_SESPROPOSER	0x01
#define  OBJ_ID_SESCHALLENG	0x09
#define  OBJ_ID_SID2DEC		0x03
#define  OBJ_ID_SOLVEDCHALL	0x0A
#define  OBJ_ID_USRDBLOB	0x05
#define  OBJ_ID_AESPART1	0x06
#define	 OBJ_ID_PEERLOGIN	0x00
#define  OBJ_ID_PEERSESSID	0x03

#define  OBJ_ID_GROUPID		0x269
#define  OBJ_ID_GROUPNAME	0x25C

void	WriteValue(uchar **BufferAddr, uint Value);
void	WriteObject(uchar **Buffer, ObjectDesc Object);
int		ManageObjects(uchar **Buffer, uint Size, SResponse *Response);
void	FreeResponse(SResponse *Response);