You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
816 lines
32 KiB
816 lines
32 KiB
/**********************************************************************/
|
|
/** Microsoft Passport **/
|
|
/** Copyright(c) Microsoft Corporation, 1999 - 2001 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
Passport.idl
|
|
|
|
|
|
FILE HISTORY:
|
|
|
|
*/// Passport.idl : IDL source for Passport.dll
|
|
//
|
|
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the type library (Passport.tlb) and marshalling code.
|
|
|
|
cpp_quote("// Size definitions")
|
|
const int PASSPORT_COOKIES_MAXLEN = 512;
|
|
const int PASSPORT_COOKIES_BUFSIZE = PASSPORT_COOKIES_MAXLEN + 1;
|
|
|
|
const int PASSPORT_EMAIL_MAXLEN = 64 + 1 + 64;
|
|
const int PASSPORT_EMAIL_BUFSIZE = PASSPORT_EMAIL_MAXLEN + 1;
|
|
|
|
const int PASSPORT_NICKNAME_MAXLEN = 30;
|
|
const int PASSPORT_NICKNAME_BUFSIZE = PASSPORT_NICKNAME_MAXLEN + 1;
|
|
|
|
// flags for OnStartPageHeaders
|
|
const int PASSPORT_HEADER_FLAGS_HTTPS = 0x1;
|
|
|
|
// max size for encryption
|
|
// max blocks + 10 should be multiples of 3 for simplicity
|
|
const int ENC_MAX_SIZE = 2045;
|
|
|
|
// max size for decryption
|
|
// I don't trust the compiler... (((2045+10)*4)/3)+9 = 2749 * sizeof(wchar)
|
|
const int DEC_MAX_SIZE = 5498;
|
|
|
|
|
|
//
|
|
// passport core profile names
|
|
//
|
|
const char* MSPP_PROF_MEMBER_NAME = "membername";
|
|
const char* MSPP_PROF_HI_UID = "memberidhigh";
|
|
const char* MSPP_PROF_LO_UID = "memberidlow";
|
|
const char* MSPP_PROF_VERSION = "profileVersion";
|
|
const char* MSPP_PROF_COUNTRY = "country";
|
|
const char* MSPP_PROF_POSTALCODE = "postalCode";
|
|
const char* MSPP_PROF_REGION = "region";
|
|
const char* MSPP_PROF_CITY = "city";
|
|
const char* MSPP_PROF_LANGPREF = "lang_preference";
|
|
const char* MSPP_PROF_BDAYPREC = "bday_precision";
|
|
const char* MSPP_PROF_BDATE = "birthdate";
|
|
const char* MSPP_PROF_GENDER = "gender";
|
|
const char* MSPP_PROF_PREF_EMAIL = "preferredEmail";
|
|
const char* MSPP_PROF_NICKNAME = "nickname";
|
|
const char* MSPP_PROF_ACCESS = "accessibility";
|
|
const char* MSPP_PROF_WALLET = "wallet";
|
|
const char* MSPP_PROF_DIRECTORY = "directory";
|
|
const char* MSPP_PROF_MSNIA = "inetaccess";
|
|
const char* MSPP_PROF_FLAGS = "flags";
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
[
|
|
object,
|
|
uuid(ACE1AC86-E14F-4f7b-B89A-805A69959680),
|
|
dual,
|
|
helpstring("IDomainMap Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDomainMap : IUnknown
|
|
{
|
|
[helpstring("Returns information about a given member domain, such as registration URL, etc.")]
|
|
HRESULT GetDomainAttribute([in] BSTR attributeName,
|
|
[in,optional] VARIANT lcid,
|
|
[in,optional] VARIANT domain,
|
|
[out,retval] BSTR *pAttrVal);
|
|
|
|
[propget, helpstring("The list of all valid Passport domains, including 'default'")]
|
|
HRESULT Domains([out,retval] VARIANT *pArrayVal);
|
|
|
|
[helpstring("Determine whether a given domain name is the name of a domain authority.")]
|
|
HRESULT DomainExists([in] BSTR domainName,
|
|
[out,retval] VARIANT_BOOL* pbExists);
|
|
};
|
|
[
|
|
object,
|
|
uuid(41651BF1-A5C8-11D2-95DF-00C04F8E7A70),
|
|
dual,
|
|
helpstring("IPassportTicket Interface -- internal used"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportTicket : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("The raw ticket bytes, unencrypted.")]
|
|
HRESULT unencryptedTicket([out, retval] BSTR *pVal);
|
|
|
|
[propput, id(1), helpstring("The raw ticket bytes, unencrypted.")]
|
|
HRESULT unencryptedTicket([in] BSTR newVal);
|
|
|
|
[propget, id(2),
|
|
helpstring("TRUE if the user has been authenticated to this site/domain within the TimeWindow, and if ForceLogin is true, that they have typed in their password within the TimeWindow.")]
|
|
HRESULT IsAuthenticated( [in] ULONG TimeWindow,
|
|
[in] VARIANT_BOOL ForceLogin,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(3), helpstring("Age of the ticket, in seconds")]
|
|
HRESULT TicketAge([out, retval] int *pVal);
|
|
|
|
[propget, id(4), helpstring("Number of seconds since the user typed in their password")]
|
|
HRESULT TimeSinceSignIn([out, retval] int *pVal);
|
|
|
|
[propget, id(5), helpstring("The user's 64-bit numeric member ID, encoded as a string")]
|
|
HRESULT MemberId([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(6), helpstring("The lower 32 bits of the member id")]
|
|
HRESULT MemberIdLow([out, retval] int *pVal);
|
|
|
|
[propget, id(7), helpstring("The upper 32 bits of the member id")]
|
|
HRESULT MemberIdHigh([out, retval] int *pVal);
|
|
|
|
[propget, id(8), helpstring("TRUE if the user requested that their password be saved")]
|
|
HRESULT HasSavedPassword([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(9), helpstring("Gets the fully qualified hostname of the signin server for this user")]
|
|
HRESULT SignInServer([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(10), helpstring("Gets the absolute time the ticket was generated")]
|
|
HRESULT TicketTime([out, retval] long *pVal);
|
|
|
|
[propget, id(11), helpstring("Gets the absolute time the member last signed in")]
|
|
HRESULT SignInTime([out, retval] long *pVal);
|
|
|
|
[propget, id(12), helpstring("Gets any Passport Network errors that occurred")]
|
|
HRESULT Error([out, retval] long *pVal);
|
|
|
|
[id(13), helpstring("method DoSecureCheck with Secure Cookie")]
|
|
HRESULT DoSecureCheck([in] BSTR bstrSec);
|
|
|
|
[id(14), helpstring("method DoSecureCheckInTicket")]
|
|
HRESULT DoSecureCheckInTicket([in] BOOL fSecureTransported);
|
|
};
|
|
|
|
[
|
|
|
|
object,
|
|
uuid(5992F4F4-05CB-4944-A426-1E1870266F85),
|
|
dual,
|
|
helpstring("IPassportTicket2 Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportTicket2 : IPassportTicket
|
|
{
|
|
typedef enum {
|
|
ConsentStatus_Unknown = 0,
|
|
ConsentStatus_Known,
|
|
ConsentStatus_NotDefinedInTicket,
|
|
ConsentStatus_DoNotNeed,
|
|
} ConsentStatusEnum;
|
|
|
|
[id(21), helpstring("method GetProperty")]
|
|
HRESULT GetProperty( [in] BSTR propName,
|
|
[out, retval] VARIANT* pVal);
|
|
|
|
[id(22), helpstring("method SetTertiaryConsent")]
|
|
HRESULT SetTertiaryConsent([in] BSTR consentCookie);
|
|
|
|
[id(23), helpstring("method ConsentStatus")]
|
|
HRESULT ConsentStatus(
|
|
[in] VARIANT_BOOL RequireConsentStatus,
|
|
[out] ULONG* consentFlags,
|
|
[out, retval] ConsentStatusEnum* pConsentCode);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(41651BF3-A5C8-11D2-95DF-00C04F8E7A70),
|
|
dual,
|
|
helpstring("IPassportProfile Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportProfile : IDispatch
|
|
{
|
|
[propget, id(DISPID_VALUE), helpstring("Gets a profile attribute by name")]
|
|
HRESULT Attribute([in] BSTR name, [out, retval] VARIANT *pVal);
|
|
|
|
[propput, id(DISPID_VALUE), helpstring("Sets a profile attribute by name")]
|
|
HRESULT Attribute([in] BSTR name, [in] VARIANT newVal);
|
|
|
|
[propget, id(1), helpstring("Gets a profile attribute by numeric index")]
|
|
HRESULT ByIndex([in] int index, [out, retval] VARIANT *pVal);
|
|
|
|
[propput, id(1), helpstring("Sets a profile attribute by numeric index")]
|
|
HRESULT ByIndex([in] int index, [in] VARIANT newVal);
|
|
|
|
[propget, id(2), helpstring("TRUE if the profile token is valid according to its schema")]
|
|
HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(3), helpstring("The name of the schema by which the profile is interpreted. Must be set BEFORE using the object")]
|
|
HRESULT SchemaName([out, retval] BSTR *pVal);
|
|
|
|
[propput, id(3), helpstring("The name of the schema by which the profile is interpreted. Must be set BEFORE using the object")]
|
|
HRESULT SchemaName([in] BSTR newVal);
|
|
|
|
[propget, id(4), helpstring("The raw, unencrypted profile bytes")]
|
|
HRESULT unencryptedProfile([out, retval] BSTR *pVal);
|
|
|
|
[propput, id(4), helpstring("The raw, unencrypted profile bytes")]
|
|
HRESULT unencryptedProfile([in] BSTR newVal);
|
|
|
|
[propget, id(5), helpstring("The raw update string, if any, which can be sent as a 'diff' to the update server")]
|
|
HRESULT updateString([out,retval] BSTR *pVal);
|
|
};
|
|
[
|
|
object,
|
|
uuid(41651BEF-A5C8-11D2-95DF-00C04F8E7A70),
|
|
dual,
|
|
helpstring("IPassportManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportManager : IDispatch
|
|
{
|
|
//Standard Server Side Component Methods
|
|
HRESULT OnStartPage([in] IUnknown* piUnk);
|
|
HRESULT OnEndPage();
|
|
HRESULT OnStartPageECB([in] BYTE *pECB,
|
|
[in,out] DWORD *pBufSize,
|
|
[out, size_is(*pBufSize)] LPSTR pCookieHeader);
|
|
|
|
[
|
|
hidden
|
|
]
|
|
HRESULT _Ticket([out] IPassportTicket** piTicket);
|
|
|
|
[
|
|
hidden
|
|
]
|
|
HRESULT _Profile([out] IPassportProfile** piProfile);
|
|
|
|
[
|
|
id(1),
|
|
helpstring("Returns a URL with the correct login server and path based on the member's domain and optional parameters")
|
|
]
|
|
HRESULT AuthURL([in,optional] VARIANT returnUrl,
|
|
[in,optional] VARIANT TimeWindow,
|
|
[in,optional] VARIANT ForceLogin,
|
|
[in,optional] VARIANT coBrandArgs,
|
|
[in,optional] VARIANT lang_id,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT KPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] BSTR *pAuthVal);
|
|
|
|
[
|
|
id(2),
|
|
helpstring("TRUE if the user has been authenticated to this site/domain within the TimeWindow, and if ForceLogin is true, that they have typed in their password within the TimeWindow.")
|
|
]
|
|
HRESULT IsAuthenticated([in,optional] VARIANT TimeWindow,
|
|
[in,optional] VARIANT ForceLogin,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[
|
|
id(3),
|
|
helpstring("Returns an HREF with an imbedded image tag to display the Passport logo")
|
|
]
|
|
HRESULT LogoTag([in,optional] VARIANT returnUrl,
|
|
[in,optional] VARIANT TimeWindow,
|
|
[in,optional] VARIANT ForceLogin,
|
|
[in,optional] VARIANT coBrandArgs,
|
|
[in,optional] VARIANT lang_id,
|
|
[in,optional] VARIANT bSecure,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT KPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] BSTR *pVal);
|
|
|
|
[id(4), helpstring("TRUE if the user has Passport profile data available")]
|
|
HRESULT HasProfile([in,optional] VARIANT ProfileName, [out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(5), helpstring("TRUE if the user has an authentication Ticket in this domain, regardless of how old it is")]
|
|
HRESULT HasTicket([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(6), helpstring("TRUE if this page view is the FIRST page view after the user was sent to the login server, determined by new valid cookie data in the query string")]
|
|
HRESULT FromNetworkServer([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[id(7), helpstring("TRUE if the specified flag has been raised in the processing of this user's page view")]
|
|
HRESULT HasFlag([in,optional] VARIANT flagMask, [out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(8), helpstring("The age of the authentication ticket, in seconds")]
|
|
HRESULT TicketAge([out, retval] int *pVal);
|
|
|
|
[propget, id(9), helpstring("Number of seconds since the last time the user typed in their password")]
|
|
HRESULT TimeSinceSignIn([out, retval] int *pVal);
|
|
|
|
[id(10), helpstring("Returns information about a given member domain, such as registration URL, etc.")]
|
|
HRESULT GetDomainAttribute( [in] BSTR attributeName,
|
|
[in,optional] VARIANT lcid,
|
|
[in,optional] VARIANT domain,
|
|
[out,retval] BSTR *pAttrVal);
|
|
|
|
[id(11), helpstring("Returns the member domain part of a member's fully qualified name")]
|
|
HRESULT DomainFromMemberName( [in,optional] VARIANT memberName,
|
|
[out,retval] BSTR *pDomainName);
|
|
|
|
[propget, id(12), helpstring("Gets a profile attribute by numeric index")]
|
|
HRESULT ProfileByIndex([in] int index, [out, retval] VARIANT *pVal);
|
|
|
|
[propput, id(12), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT ProfileByIndex([in] int index, [in] VARIANT newVal);
|
|
|
|
[id(13), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT OnStartPageManual([in] BSTR queryStringT,
|
|
[in] BSTR queryStringP,
|
|
[in] BSTR MSPAuthCookie,
|
|
[in] BSTR MSPProfCookie,
|
|
[in] BSTR MSPConsentCookie,
|
|
[in,optional] VARIANT vMSPSecCookie,
|
|
[out, retval] VARIANT *pSetCookieArray);
|
|
|
|
[propget, id(14), helpstring("TRUE if the user requested that their password be saved")]
|
|
HRESULT HasSavedPassword([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[id(15), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT Commit([out,retval] BSTR *pNewProfileCookieHeader);
|
|
|
|
[propget, id(DISPID_VALUE), helpstring("Returns the value a profile attribute, such as alias or gender")]
|
|
HRESULT Profile([in] BSTR attributeName, [out, retval] VARIANT *pVal);
|
|
|
|
[propput, id(DISPID_VALUE), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT Profile([in] BSTR attributeName, [in] VARIANT newVal);
|
|
|
|
[hidden, propget, id(16), helpstring("Gets the absolute time the ticket was generated")]
|
|
HRESULT TicketTime([out, retval] long *pVal);
|
|
|
|
[hidden, propget, id(17), helpstring("Gets the absolute time the member last signed in")]
|
|
HRESULT SignInTime([out, retval] long *pVal);
|
|
|
|
[hidden, propget, id(18), helpstring("The list of all valid Passport domains, including 'default'")]
|
|
HRESULT Domains([out,retval] VARIANT *pArrayVal);
|
|
|
|
[propget, id(19), helpstring("Returns any network error code associated with this request")]
|
|
HRESULT Error([out,retval] long *pErrorVal);
|
|
|
|
[hidden, helpstring("Initialize Passport Manager for use within an ISAPI filter")]
|
|
HRESULT OnStartPageFilter( [in] BYTE* pPFC,
|
|
[in,out] DWORD* pBufSize,
|
|
[out, size_is(*pBufSize)] LPSTR pCookieHeader);
|
|
|
|
[id(20), helpstring("Initialize Passport Manager object using Request/Response ASP objects")]
|
|
HRESULT OnStartPageASP( [in] IDispatch* pdispRequest,
|
|
[in] IDispatch* pdispResponse);
|
|
|
|
[hidden, id(21), helpstring("method GetServerInfo")]
|
|
HRESULT GetServerInfo([out,retval] BSTR *pbstrOut);
|
|
|
|
[id(22), helpstring("Returns true if the currently signed on user has consent")]
|
|
HRESULT HaveConsent([in] VARIANT_BOOL bNeedFullConsent,
|
|
[in] VARIANT_BOOL bNeedBirthdate,
|
|
[out,retval] VARIANT_BOOL* pbHaveConsent);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(8ca48d6a-0b51-4f7a-9475-b0a8b59c3999),
|
|
dual,
|
|
helpstring("IPassportManager2 Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportManager2 : IPassportManager
|
|
{
|
|
[id(23),helpstring("Partners should use this call to initiate user logon. It does redirect inside")]
|
|
HRESULT LoginUser([in, optional] VARIANT returnUrl,
|
|
[in, optional] VARIANT TimeWindow,
|
|
[in, optional] VARIANT ForceLogin,
|
|
[in, optional] VARIANT coBrandTemplate,
|
|
[in, optional] VARIANT lang_id,
|
|
[in, optional] VARIANT NameSpace,
|
|
[in, optional] VARIANT KPP,
|
|
[in, optional] VARIANT SecureLevel,
|
|
[in, optional] VARIANT ExtraParams);
|
|
[
|
|
id(24),
|
|
helpstring("Returns a URL used for login on the member's domain and optional parameters")
|
|
]
|
|
HRESULT AuthURL2([in,optional] VARIANT returnUrl,
|
|
[in,optional] VARIANT TimeWindow,
|
|
[in,optional] VARIANT ForceLogin,
|
|
[in,optional] VARIANT coBrandArgs,
|
|
[in,optional] VARIANT lang_id,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT KPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] BSTR *pAuthVal);
|
|
[
|
|
id(25),
|
|
helpstring("Returns an HREF with an imbedded image tag to display the Passport logo")
|
|
]
|
|
HRESULT LogoTag2([in,optional] VARIANT returnUrl,
|
|
[in,optional] VARIANT TimeWindow,
|
|
[in,optional] VARIANT ForceLogin,
|
|
[in,optional] VARIANT coBrandArgs,
|
|
[in,optional] VARIANT lang_id,
|
|
[in,optional] VARIANT bSecure,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT KPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out, retval] BSTR *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(1451151f-90a0-491b-b8e1-81a13767ed98),
|
|
dual,
|
|
helpstring("IPassportManager3 Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportManager3 : IPassportManager2
|
|
{
|
|
[propget, id(30),
|
|
helpstring("Returns the value a ticket attribute, such as security level")]
|
|
HRESULT Ticket([in] BSTR attributeName, [out, retval] VARIANT *pVal);
|
|
|
|
[
|
|
id(31),
|
|
helpstring("Returns config settings the registry")
|
|
]
|
|
HRESULT GetCurrentConfig([in] BSTR name, [out, retval] VARIANT *pVal);
|
|
|
|
[
|
|
id(32),
|
|
helpstring("Returns LogoutURL")
|
|
]
|
|
HRESULT LogoutURL([in,optional] VARIANT returnUrl,
|
|
[in,optional] VARIANT coBrandArgs,
|
|
[in,optional] VARIANT lang_id,
|
|
[in,optional] VARIANT domain,
|
|
[in,optional] VARIANT bSecure,
|
|
[out, retval] BSTR *pVal);
|
|
|
|
[id(33),helpstring("To get Auth Challenge Headers")]
|
|
HRESULT GetLoginChallenge([in, optional] VARIANT returnUrl,
|
|
[in, optional] VARIANT TimeWindow,
|
|
[in, optional] VARIANT ForceLogin,
|
|
[in, optional] VARIANT coBrandTemplate,
|
|
[in, optional] VARIANT lang_id,
|
|
[in, optional] VARIANT NameSpace,
|
|
[in, optional] VARIANT KPP,
|
|
[in, optional] VARIANT SecureLevel,
|
|
[in, optional] VARIANT ExtraParams,
|
|
[out, retval] BSTR* pAuthHeader
|
|
);
|
|
|
|
[propget, id(34), helpstring("PUID")]
|
|
HRESULT HexPUID([out, retval] BSTR *pVal);
|
|
|
|
[id(35), helpstring("on start page with http request line and headers")]
|
|
HRESULT OnStartPageHTTPRaw(
|
|
[in, string] LPCSTR request_line,
|
|
[in, string] LPCSTR headers,
|
|
[in] DWORD flags,
|
|
[in,out] DWORD *pRespHeadersSize,
|
|
[out, size_is(*pRespHeadersSize)] LPSTR pRespHeaders);
|
|
|
|
[id(36),
|
|
helpstring("continue auth with addtional http body, as required by the return value of OnStartPageHTTPRaw")]
|
|
HRESULT ContinueStartPageHTTPRaw(
|
|
[in] DWORD bodyLen,
|
|
[in, size_is(bodyLen)] byte* body,
|
|
[in,out] DWORD *pBufSize,
|
|
[out, size_is(*pBufSize)] LPSTR pRespHeadersSize,
|
|
[in, out] DWORD* pRespBodyLen,
|
|
[out, size_is(*pRespBodyLen)] byte* pRespBody);
|
|
|
|
[propget, id(37), helpstring("Passport manager Options")]
|
|
HRESULT Option([in] BSTR name, [out, retval] VARIANT *pVal);
|
|
|
|
[propput, id(37), helpstring("passport manager options")]
|
|
HRESULT Option([in] BSTR name, [in] VARIANT newVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(41651BF9-A5C8-11D2-95DF-00C04F8E7A70),
|
|
dual,
|
|
helpstring("IPassportCrypt Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportCrypt : IDispatch
|
|
{
|
|
[id(1), helpstring("Encrypt a blob of data")]
|
|
HRESULT Encrypt([in] BSTR rawData, [out,retval] BSTR *pEncrypted);
|
|
|
|
[id(2), helpstring("Decrypt a blob of data")]
|
|
HRESULT Decrypt([in] BSTR rawData, [out,retval] BSTR *pUnencrypted);
|
|
|
|
[hidden, propget, id(3), helpstring("keyVersion number for multiple key support")]
|
|
HRESULT keyVersion([out, retval] int *pVal);
|
|
|
|
[hidden, propput, id(3), helpstring("keyVersion number for multiple key support")]
|
|
HRESULT keyVersion([in] int newVal);
|
|
|
|
[propget, id(4), helpstring("Find out if this object is capable of encryption")]
|
|
HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[hidden, propput, id(5),
|
|
helpstring("For advanced users only: this sets the keyMaterial of the encryption algorithm")]
|
|
HRESULT keyMaterial([in] BSTR newVal);
|
|
|
|
[id(6), helpstring("Compress a string.")]
|
|
HRESULT Compress([in] BSTR bstrIn, [out,retval] BSTR *pbstrOut);
|
|
|
|
[id(7), helpstring("Decompress a string.")]
|
|
HRESULT Decompress([in] BSTR bstrIn, [out,retval] BSTR *pbstrOut);
|
|
|
|
[id(8), propput, helpstring("Use a different set of keys based on site name.")]
|
|
HRESULT site([in] BSTR bstrSiteName);
|
|
|
|
[id(9), helpstring("on start page")]
|
|
HRESULT OnStartPage([in] IUnknown* piUnk);
|
|
|
|
[id(10), propput, helpstring("Use a different set of keys based on host name.")]
|
|
HRESULT host([in] BSTR bstrHostName);
|
|
};
|
|
|
|
// passport admin interface
|
|
|
|
[
|
|
object,
|
|
uuid(A0082CF5-AFF5-11D2-95E3-00C04F8E7A70),
|
|
dual,
|
|
helpstring("IPassportAdmin Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportAdmin : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("TRUE if all configuration is ok and Passport objects are functional")]
|
|
HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(2), helpstring("Get the description for configuration error")]
|
|
HRESULT ErrorDescription([out, retval] BSTR *pVal);
|
|
|
|
[id(3), helpstring("Adds a key to the key store")]
|
|
HRESULT addKey(
|
|
[in] BSTR keyMaterial,
|
|
[in] int version,
|
|
[in] long expires,
|
|
[out,retval] VARIANT_BOOL *ok
|
|
);
|
|
|
|
[id(4), helpstring("Removes a key from the store")]
|
|
HRESULT deleteKey([in] int version);
|
|
|
|
[id(5), helpstring("Change the exipration time on a key")]
|
|
HRESULT setKeyTime([in] int version, [in] int fromNow);
|
|
|
|
[propget, id(6), helpstring("Get the current key version number")]
|
|
HRESULT currentKeyVersion([out,retval] int *pCur);
|
|
|
|
[propput, id(6), helpstring("Set the current key version number")]
|
|
HRESULT currentKeyVersion([in] int cur);
|
|
|
|
[hidden, id(7), helpstring("Refresh nexus and registry configuration")]
|
|
HRESULT Refresh([in] VARIANT_BOOL bWait,
|
|
[out,retval] VARIANT_BOOL* pbSuccess);
|
|
};
|
|
[
|
|
object,
|
|
uuid(876181A0-3B05-11d3-9ACD-0080C712D19C),
|
|
dual,
|
|
helpstring("IPassportAdminEx Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportAdminEx : IPassportAdmin
|
|
{
|
|
[id(8), helpstring("Adds a key to the key store")]
|
|
HRESULT addKeyEx(
|
|
[in] BSTR keyMaterial,
|
|
[in] int nVersion,
|
|
[in] long expires,
|
|
[in,optional] VARIANT vSiteName,
|
|
[out,retval] VARIANT_BOOL* ok
|
|
);
|
|
|
|
[id(9), helpstring("Removes a key from the store")]
|
|
HRESULT deleteKeyEx([in] int nVersion,
|
|
[in,optional] VARIANT vSiteName);
|
|
|
|
[id(10), helpstring("Change the exipration time on a key")]
|
|
HRESULT setKeyTimeEx(
|
|
[in] int nVersion,
|
|
[in] int fromNow,
|
|
[in,optional] VARIANT vSiteName);
|
|
|
|
[id(11), helpstring("Get the current key version number")]
|
|
HRESULT getCurrentKeyVersionEx(
|
|
[in,optional] VARIANT vSiteName,
|
|
[out,retval] int* pCur);
|
|
|
|
[id(12), helpstring("Set the current key version number")]
|
|
HRESULT putCurrentKeyVersionEx(
|
|
[in] int cur,
|
|
[in,optional] VARIANT vSiteName);
|
|
|
|
[id(13), helpstring("Set the nexus password")]
|
|
HRESULT setNexusPassword(
|
|
[in] BSTR bstrPwd);
|
|
};
|
|
[
|
|
object,
|
|
uuid(74EB2513-E239-11D2-95E9-00C04F8E7A70),
|
|
dual,
|
|
helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportFastAuth : IDispatch
|
|
{
|
|
[id(1), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT IsAuthenticated(
|
|
[in] BSTR bstrTicket,
|
|
[in] BSTR bstrProfile,
|
|
[in,optional] VARIANT vSecure,
|
|
[in,optional] VARIANT vTimeWindow,
|
|
[in,optional] VARIANT vForceLogin,
|
|
[in,optional] VARIANT vSiteName,
|
|
[in,optional] VARIANT vDoSecureCheck,
|
|
[out,retval] VARIANT_BOOL* pbIsAuthenticated
|
|
);
|
|
|
|
[id(2), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT LogoTag([in] BSTR bstrTicket,
|
|
[in] BSTR bstrProfile,
|
|
[in,optional] VARIANT vRU,
|
|
[in,optional] VARIANT vTimeWindow,
|
|
[in,optional] VARIANT vForceLogin,
|
|
[in,optional] VARIANT vCoBrand,
|
|
[in,optional] VARIANT vLangId,
|
|
[in,optional] VARIANT vSecure,
|
|
[in,optional] VARIANT vLogoutURL,
|
|
[in,optional] VARIANT vSiteName,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT vKPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out,retval] BSTR* pbstrLogoTag
|
|
);
|
|
|
|
[id(3), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT AuthURL([in,optional] VARIANT vTicket,
|
|
[in,optional] VARIANT vProfile,
|
|
[in,optional] VARIANT vRU,
|
|
[in,optional] VARIANT vTimeWindow,
|
|
[in,optional] VARIANT vForceLogin,
|
|
[in,optional] VARIANT vCoBrand,
|
|
[in,optional] VARIANT vLangId,
|
|
[in,optional] VARIANT vSecure,
|
|
[in,optional] VARIANT vLogoutURL,
|
|
[in,optional] VARIANT vReserved1,
|
|
[in,optional] VARIANT vSiteName,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT vKPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out,retval] BSTR* pbstrAuthURL
|
|
);
|
|
|
|
[id(4), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"), hidden]
|
|
HRESULT GetTicketAndProfilePFC(
|
|
[in] BYTE* pbPFC,
|
|
[in] BYTE* pbPPH,
|
|
[out] BSTR* pbstrTicket,
|
|
[out] BSTR* pbstrProfile,
|
|
[out] BSTR* pbstrSecure,
|
|
[out] BSTR* pbstrSiteName
|
|
);
|
|
|
|
[id(5), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"), hidden]
|
|
HRESULT GetTicketAndProfileECB(
|
|
[in] BYTE* pbECB,
|
|
[out] BSTR* pbstrTicket,
|
|
[out] BSTR* pbstrProfile,
|
|
[out] BSTR* pbstrSecure,
|
|
[out] BSTR* pbstrSiteName
|
|
);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(fb41a7d8-3739-4468-bdf1-e5b4b2eaeb4b),
|
|
dual,
|
|
helpstring("This method is deprecated. Do not use for Passport 2.0 implementation"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportFastAuth2 : IPassportFastAuth
|
|
{
|
|
[id(6), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT LogoTag2([in] BSTR bstrTicket,
|
|
[in] BSTR bstrProfile,
|
|
[in,optional] VARIANT vRU,
|
|
[in,optional] VARIANT vTimeWindow,
|
|
[in,optional] VARIANT vForceLogin,
|
|
[in,optional] VARIANT vCoBrand,
|
|
[in,optional] VARIANT vLangId,
|
|
[in,optional] VARIANT vSecure,
|
|
[in,optional] VARIANT vLogoutURL,
|
|
[in,optional] VARIANT vSiteName,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT vKPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out,retval] BSTR* pbstrLogoTag
|
|
);
|
|
[id(7), helpstring("This method is deprecated. Do not use for Passport 2.0 implementation")]
|
|
HRESULT AuthURL2([in,optional] VARIANT vTicket,
|
|
[in,optional] VARIANT vProfile,
|
|
[in,optional] VARIANT vRU,
|
|
[in,optional] VARIANT vTimeWindow,
|
|
[in,optional] VARIANT vForceLogin,
|
|
[in,optional] VARIANT vCoBrand,
|
|
[in,optional] VARIANT vLangId,
|
|
[in,optional] VARIANT vSecure,
|
|
[in,optional] VARIANT vLogoutURL,
|
|
[in,optional] VARIANT vReserved1,
|
|
[in,optional] VARIANT vSiteName,
|
|
[in,optional] VARIANT NameSpace,
|
|
[in,optional] VARIANT vKPP,
|
|
[in,optional] VARIANT SecureLevel,
|
|
[out,retval] BSTR* pbstrAuthURL
|
|
);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(5602E147-27F6-11d3-94DD-00C04F72DC08),
|
|
dual,
|
|
helpstring("IPassportFactory Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPassportFactory : IDispatch
|
|
{
|
|
HRESULT CreatePassportManager(
|
|
[out,retval] IDispatch** ppdispPassportManager
|
|
);
|
|
};
|
|
[
|
|
uuid(41651BE3-A5C8-11D2-95DF-00C04F8E7A70),
|
|
version(1.0),
|
|
helpstring("Passport 1.0 Type Library")
|
|
]
|
|
library PASSPORTLib
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(41651BF0-A5C8-11D2-95DF-00C04F8E7A70),
|
|
helpstring("Passport Manager")
|
|
]
|
|
coclass Manager
|
|
{
|
|
[default] interface IPassportManager3;
|
|
interface IPassportManager2;
|
|
interface IPassportManager;
|
|
interface IDomainMap;
|
|
};
|
|
[
|
|
uuid(41651BF2-A5C8-11D2-95DF-00C04F8E7A70),
|
|
helpstring("Passport Ticket Parser")
|
|
]
|
|
coclass Ticket
|
|
{
|
|
[default] interface IPassportTicket2;
|
|
interface IPassportTicket;
|
|
};
|
|
[
|
|
uuid(41651BF4-A5C8-11D2-95DF-00C04F8E7A70),
|
|
helpstring("Passport Profile Object")
|
|
]
|
|
coclass Profile
|
|
{
|
|
[default] interface IPassportProfile;
|
|
};
|
|
[
|
|
uuid(41651BFA-A5C8-11D2-95DF-00C04F8E7A70),
|
|
helpstring("Passport Encryption Class")
|
|
]
|
|
coclass Crypt
|
|
{
|
|
[default] interface IPassportCrypt;
|
|
};
|
|
[
|
|
uuid(A0082CF6-AFF5-11D2-95E3-00C04F8E7A70),
|
|
helpstring("Administration Interface for Passport Objects")
|
|
]
|
|
coclass Admin
|
|
{
|
|
[default] interface IPassportAdminEx;
|
|
interface IPassportAdmin;
|
|
};
|
|
[
|
|
uuid(5602E146-27F6-11d3-94DD-00C04F72DC08),
|
|
helpstring("PassportFastAuth Class")
|
|
]
|
|
coclass FastAuth
|
|
{
|
|
[default] interface IPassportFastAuth2;
|
|
interface IPassportFastAuth;
|
|
};
|
|
[
|
|
uuid(74EB2514-E239-11D2-95E9-00C04F8E7A70),
|
|
helpstring("PassportFactory Class")
|
|
]
|
|
coclass PassportFactory
|
|
{
|
|
[default] interface IPassportFactory;
|
|
};
|
|
};
|