--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsstar/wsstarplugin/inc/wsstarrstresponse.h Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,235 @@
+/*
+* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Header declaration
+*
+*/
+
+
+
+
+
+
+
+
+#ifndef WSSTAR_RST_RESPONSE_MESSAGE_H
+#define WSSTAR_RST_RESPONSE_MESSAGE_H
+
+// INCLUDES
+#include "SenBaseFragment.h"
+#include "wsstarplugin.h"
+#include "wsstarvalidatehandler.h"
+#include "SenCredential.h"
+#include "senwsdescription.h" //credential const
+
+
+// FORWARD DECLARATIONS
+
+
+// CLASS DECLARATION
+/**
+ * Class: CWSStarRSTResponse
+ *
+ * Description: Structure which is self parsing. Holds information about
+ * RST response. See WS-Trust specification
+ */
+class CWSStarRSTResponse : public CSenBaseFragment
+ {
+public: // Constructors and destructor
+
+ /**
+ * Standard 2 phase constructor
+ * @since Series60 4.0
+ * @param aParseIssuedTokens determine if token will searched only in header under issuedToken tag
+ * @param aAppliedTo precise which token in response collection is used after sts negotation.
+ * If null passed 1st token from collection is taken
+ * @return new instance of rst response
+ */
+ static CWSStarRSTResponse* NewL(TBool aParseIssuedTokens, const TDesC8& aAppliedTo, const TDesC8* aVersion);
+
+ /**
+ * Standard 2 phase constructor
+ * @since Series60 4.0
+ * @param aParseIssuedTokens determine if token will searched only in header under issuedToken tag
+ * @param aAppliedTo precise which token in response collection is used after sts negotation
+ * If null passed 1st token from collection is taken
+ * @return new instance of rst response (also pushed on cleanupStack)
+ */
+ static CWSStarRSTResponse* NewLC(TBool aParseIssuedTokens, const TDesC8& aAppliedTo, const TDesC8* aVersion);
+
+ /**
+ * Normal destructor
+ */
+ virtual ~CWSStarRSTResponse();
+
+ // New functions
+
+ /**
+ * Getter for credential
+ * @return credential
+ */
+ CSenCredential* Credential();
+
+ /**
+ * Getter for POP encoded as Base64
+ * @return credential
+ */
+ TPtrC8 POPBase64();
+
+ /**
+ * Getter for TokenType
+ * @return credential
+ */
+ TPtrC8 TokenType();
+
+ /**
+ * Getter for type of binary
+ * @return type of binary
+ */
+ TPtrC8 BinaryType();
+
+ /**
+ * Getter for entropy of STS
+ * @return entropy of STS
+ */
+ TPtrC8 EntropySTS();
+
+ /**
+ * Getter for computed key
+ * @return computed key
+ */
+ TPtrC8 ComputedKey();
+
+ /**
+ * Getter for time of credential expired time
+ * @return expired time in XSD time-date format
+ */
+ TPtrC8 CredentialExpires();
+
+ /**
+ * Getter for time of credential creation time
+ * @return creation time in XSD time-date format
+ */
+ TPtrC8 CredentialCreated();
+
+ /**
+ * Getter for security token referenve
+ * @return security token reference
+ */
+ TPtrC8 STR();
+
+ /**
+ * Determine type of token (binary token or SCT)
+ * @return Etrue if token is SCT (security Context Token).
+ * See WS-SecureConversation specification.
+ */
+ TBool IsContextToken();
+
+ /**
+ * Deteremine if this really is a response (RST)
+ * @return ETrue if reponse is RST
+ */
+ TBool IsResponse();
+
+ /**
+ * Getter for KeySize (used during calculating computed Key in PSHA1 algorithm).
+ * @return Size in bites.
+ */
+ TInt KeySize();
+
+ /**
+ * Set addressing holders for endpoint.In message phase
+ * addressing handler shuld set values for addressing holders.
+ */
+ void UpdateAddressingHoldersL(MSenSessionContext& aCtx);
+ void SetPolicyVersion(const TDesC8* aVersion);
+
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CWSStarRSTResponse(TBool aParseIssuedTokens, const TDesC8& aAppliedTo);
+
+ /**
+ * By default Symbian 2nd phase constructors is private.
+ */
+ void ConstructL(const TDesC8* aVersion);
+
+ // From CBaseFragment
+ virtual void StartElementL(const TDesC8& aNsUri,
+ const TDesC8& aLocalName,
+ const TDesC8& aQName,
+ const RAttributeArray& aAttributes);
+
+ virtual void EndElementL(const TDesC8& aNsUri,
+ const TDesC8& aLocalName,
+ const TDesC8& aQName);
+
+ //reset state machine
+ void Reset();
+
+
+private: // Data
+
+ TBool iIsResponse;
+ /**
+ * Should be set to ETrue when parsing header for issued tokens
+ */
+ TBool iParseIssuedTokens;
+
+ //now this flag is not used anywhere. How to use it, any idea?
+ TBool iCollection;
+ TBool iContextToken;
+
+ //This bool determine if token appliedTo has been found.
+ //Next RSTRs are not processing if iTokenEstablished == TRUE
+ //Set to true only in positive case (when NO reset of machine state)
+ TBool iTokenEstablished;
+ TBool iParsingApliedTo;
+ TBool iDefTokenEstablished;
+
+ CSenCredential* iCredential;
+ CSenCredential* iCredentialDef;
+ CSenBaseFragment* iSTRFr;
+ HBufC8* iSTR;
+ HBufC8* iSTRDef;
+ HBufC8* iPOPencodedAsBase64;
+ HBufC8* iPOPencodedAsBase64Def;
+ HBufC8* iTokenType;
+ HBufC8* iTokenTypeDef;
+ HBufC8* iTypeOfBinary;
+ HBufC8* iTypeOfBinaryDef;
+ HBufC8* iEntropySTS;
+ HBufC8* iEntropySTSDef;
+ const TDesC8* iActiveXmlns;
+ TTime iNotOnOrAfter;
+ HBufC8* iComputedKey;
+ TInt* iKeySize;
+ TInt* iKeySizeDef;
+ HBufC8* iComputedKeyDef;
+ HBufC8* iCredentialExpires;
+ HBufC8* iCredentialExpiresDef;
+ HBufC8* iCredentialCreated;
+ HBufC8* iCredentialCreatedDef;
+ TPtrC8 iAppliedTo;
+ const TDesC8* iAddressingNs; //not owned
+ const TDesC8* iAddressingEndpointTag; //not owned
+ const TDesC8* iPolicyVersion;//not owned
+};
+
+#endif // WSSTAR_RST_RESPONSE_MESSAGE_H
+
+// End of File
+