webservices/wsstar/wsstarplugin/inc/wsstarrstresponse.h
changeset 0 62f9d29f7211
--- /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
+