5
* Functions to login to Microsoft Passport Service for Messenger
6
* Copyright (C) 2004 Wouter Paesen <wouter@blue-gate.be>,
7
* Wilmer van der Gaast <wilmer@gaast.net>
3
* Functions to login to Microsoft Passport service for Messenger
4
* Copyright (C) 2004-2008 Wilmer van der Gaast <wilmer@gaast.net>
9
6
* This program is free software; you can redistribute it and/or modify
10
7
* it under the terms of the GNU General Public License version 2
18
15
* You should have received a copy of the GNU General Public License
19
16
* along with this program; if not, write to the Free Software
20
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
/* Thanks to http://msnpiki.msnfanatic.com/index.php/MSNP13:SOAPTweener
23
#ifndef __PASSPORT_H__
24
#define __PASSPORT_H__
24
27
#include <stdlib.h>
25
28
#include <string.h>
33
36
#include "nogaim.h"
38
#define MAX_PASSPORT_PWLEN 16
37
void (*func)( struct passport_reply * );
49
/* The end result, the only thing we'll really be interested in
52
char *error; /* Yeah, or that... */
54
void (*callback)( struct msn_auth_data *mad );
44
int passport_get_id( gpointer func, gpointer data, char *username, char *password, char *cookie );
58
#define SOAP_AUTHENTICATION_URL "https://loginnet.passport.com/RST.srf"
60
#define SOAP_AUTHENTICATION_REQUEST \
61
"POST %s HTTP/1.0\r\n" \
62
"Accept: text/*\r\n" \
63
"User-Agent: BitlBee " BITLBEE_VERSION "\r\n" \
65
"Content-Length: %d\r\n" \
66
"Cache-Control: no-cache\r\n" \
70
#define SOAP_AUTHENTICATION_PAYLOAD \
71
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
72
"<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\" xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\" xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\" xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2004/03/addressing\" xmlns:wssc=\"http://schemas.xmlsoap.org/ws/2004/04/sc\" xmlns:wst=\"http://schemas.xmlsoap.org/ws/2004/04/trust\">" \
74
"<ps:AuthInfo xmlns:ps=\"http://schemas.microsoft.com/Passport/SoapServices/PPCRL\" Id=\"PPAuthInfo\">" \
75
"<ps:HostingApp>{7108E71A-9926-4FCB-BCC9-9A9D3F32E423}</ps:HostingApp>" \
76
"<ps:BinaryVersion>4</ps:BinaryVersion>" \
77
"<ps:UIVersion>1</ps:UIVersion>" \
78
"<ps:Cookies></ps:Cookies>" \
79
"<ps:RequestParams>AQAAAAIAAABsYwQAAAAzMDg0</ps:RequestParams>" \
82
"<wsse:UsernameToken Id=\"user\">" \
83
"<wsse:Username>%s</wsse:Username>" \
84
"<wsse:Password>%s</wsse:Password>" \
85
"</wsse:UsernameToken>" \
89
"<ps:RequestMultipleSecurityTokens xmlns:ps=\"http://schemas.microsoft.com/Passport/SoapServices/PPCRL\" Id=\"RSTS\">" \
90
"<wst:RequestSecurityToken Id=\"RST0\">" \
91
"<wst:RequestType>http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue</wst:RequestType>" \
93
"<wsa:EndpointReference>" \
94
"<wsa:Address>http://Passport.NET/tb</wsa:Address>" \
95
"</wsa:EndpointReference>" \
97
"</wst:RequestSecurityToken>" \
98
"<wst:RequestSecurityToken Id=\"RST1\">" \
99
"<wst:RequestType>http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue</wst:RequestType>" \
101
"<wsa:EndpointReference>" \
102
"<wsa:Address>messenger.msn.com</wsa:Address>" \
103
"</wsa:EndpointReference>" \
105
"<wsse:PolicyReference URI=\"?%s\"></wsse:PolicyReference>" \
106
"</wst:RequestSecurityToken>" \
107
"</ps:RequestMultipleSecurityTokens>" \
111
int passport_get_token( gpointer func, gpointer data, char *username, char *password, char *cookie );
46
113
#endif /* __PASSPORT_H__ */