cryptoservices/certificateandkeymgmt/inc/pkcs12.h
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/certificateandkeymgmt/inc/pkcs12.h	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/inc/pkcs12.h	Thu Sep 10 14:01:51 2009 +0300
@@ -1,223 +1,224 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-
-
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef __PKCS12_H__
-#define __PKCS12_H__
-
-#include <s32strm.h>
-#include <asn1dec.h>
-#include <x509cert.h>
-#include <asnpkcs.h>
-#include <pkcs7contentinfo_v2.h>
-#include <pkcs7digestinfo.h>
-#include <pkcs7encrypteddataobject.h>
-#include <pkcs7signedobject.h>
-#include <pkcs12macdata.h>
-#include <pkcs12safebag.h>
-
-namespace PKCS12
-{
-class CDecPkcs12MacData;
-
-/** PKCS12 Version */
-const TInt KPkcs12Version = 3;   
-
-/**
- Contains methods to decode and return the PFX structure.
- The structure contains the Version, MacData and AuthSafe.
- MacData is OPTIONAL.
- */
-class CDecPkcs12 : public CBase
-	{
-public:
-	enum TIntegrityMode
-	/**
-	 Identifies the type of Integrity Mode used in the PKCS12 PFX Structure
-	 */
-		{
-		/** Password Integrity Mode used in the PKCS12 PFX Structure */
-		EPasswordIntegrityMode = 1,
-		
-		/** Public Key Integrity Mode used in the PKCS12 PFX Structure */
-		EPublicKeyIntegrityMode
-		};  
-    /**
-	 Creates a new PKCS#12 object.
-	 
-	 @param  aRawData Contains a PKCS#12 PFX structure
-	 @return A pointer to the newly allocated object.
-	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
-	 */
-	IMPORT_C static CDecPkcs12* NewL(const TDesC8& aRawData); 
-	
-	/**
-	 Creates a new PKCS#12 object.
-	 
-	 @param  aRawData Contains a PKCS#12 PFX structure
-	 @return A pointer to the newly allocated object.
-	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
-	 */
-	IMPORT_C static CDecPkcs12* NewLC(const TDesC8& aRawData);
-
-	/**
-	 Creates a new PKCS#12 object.
-	 
-	 @param  aStream contains a PKCS#12 PFX structure 
-	 @return A pointer to the newly allocated object.
-	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
-	 */
-	IMPORT_C static CDecPkcs12* NewL(RReadStream& aStream); 
-
-	/**
-	 Creates a new PKCS#12 object.
-	  
-	 @param  aStream Contains a PKCS#12 PFX structure
-	 @return A pointer to the newly allocated object.
-	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
-	 */
-	IMPORT_C static CDecPkcs12* NewLC(RReadStream& aStream);
-       
-    /**
-	 Identifies the type of integrity mode used.
-     In the case of Password Integrity mode, OID is 1.2.840.113549.1.7.1.
-     In the case of Public Key Integrity mode, OID is 1.2.840.113549.1.7.2.
-	 
-     @return An enum that identifies the type of integrity mode used.
-     */	
-    IMPORT_C TIntegrityMode IntegrityMode() const;
-	
-	/**
-	 Returns the Version number contained in the PKCS12 PFX Structure.
-	 @return Returns the Version number contained in the PKCS12 PFX Structure..
-     */
-	IMPORT_C TInt Version() const;
-	
-	/**
-	 Returns the authenticated safe.
-	 This authenticated safe is used to find the integrity mode used
-	 and to verify the integrity of the packet. 
-	 
-	 @return A reference to the CPKCS7ContentInfo object.
-	 */	
-	IMPORT_C const CPKCS7ContentInfo& AuthenticatedSafe() const;
-	
-	/**
-	 The MacData, which contains:
-	 - The Mac, that is the PKCS#7 digest info structure.
-	 - The MacSalt.
-	 - The iteration count.
-	 
-	 @return Returns CDecPKCS12MacData object pointer if the MacData is present in the PFX Structure
-	         Returns NULL pointer if the MacData is absent in the PFX Structure.
-	         Returned pointer ownership retains with the object.
-	 */
-	IMPORT_C const CDecPkcs12MacData* MacData() const;
-	
-	/**
-	 These objects represents the ContentInfo Sequences present in the
-	 AuthenticatedSafe Sequence. 
-	 
-	 @return An array of ContentInfo objects
-	 @see	 CPKCS7ContentInfo
-	 */
-	IMPORT_C const RPointerArray<CPKCS7ContentInfo>& AuthenticatedSafeContents() const;
-	
-	/**
-	 Destructor.
-	 */
-	 virtual ~CDecPkcs12();
-	
-private:
-    /**
-     This decodes the entire PFX structure
-     
-	 Main PKCS12 Structure.
-	 PFX ::= SEQUENCE 
-	  	{
-	  	version		INTEGER {v3(3)}(v3,...),
-	  	authSafe	ContentInfo,
-	  	macData    	MacData OPTIONAL
-	  	}
-     
-     @param aRawData Contains a PKCS#12 PFX Structure.
-     @leave KErrArgument if the aRawData is not a Valid Pkcs12 PFX Structure.
-     @see	CPKCS7ContentInfo, CDecPkcs12MacData, CPKCS7SignedObject.
-     */
-	void ConstructL(const TDesC8& aRawData);
-	
-	/**
-	 This method is used to internalise that object and takes a reference 
-	 to an RReadStream as the interface to the read stream. 
-	 @param aStream 	 Contains a PKCS#12 PFX Structure.
-	 @leave KErrArgument if the aStream is not Pkcs12 PFX Structure.
-	 */
-    void InternalizeL(RReadStream& aStream);
-	
-	/**
-	 Constructor.
-	 */
-	 CDecPkcs12();
-	
-	/**
-	 Construtor.
-	 */
-	 CDecPkcs12(RPointerArray<CPKCS7ContentInfo> aContentInfo);
-	  
-	/**
-	 Copy Constructor.
-	 @param aDecPkcs12 A CDecPkcs12 object
-	 */
-	 CDecPkcs12(const CDecPkcs12& aDecPkcs12);
-	 
-	 /**
-	  Assignment operator.
-	  @param aDecPkcs12 A CDecPkcs12 object.
-	  @return A reference to CDecPkcs12 class.
-	  */
-	 CDecPkcs12& operator=(const CDecPkcs12& aDecPkcs12);
-
-private:
-	/** PKCS12 PFX Structure Version number */
-	TInt iVersion;
-	
-	/** Integrity Mode used in PKCS12 PFX Structure*/	
-	TIntegrityMode iMode;
-	
-	/** Contains the macData structure present 
-	    in the PKCS12 PFX Structure*/
-    CDecPkcs12MacData* iMacData;
-    
-    /** This contains the entire AuthenticatedSafe Data 
-        present in the PKCS12 PFX Structure*/
-    CPKCS7ContentInfo* iAuthenticatedSafeData;
-    
-    /** This Contains an Array of ContentInfos present 
-        within the AuthenticatedSafe of PKCS12 PFX Structure*/
-    RPointerArray<CPKCS7ContentInfo> iContentInfos;
-  };
-} // namespace PKCS12 
-
-#endif // __PKCS12_H__
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef __PKCS12_H__
+#define __PKCS12_H__
+
+#include <s32strm.h>
+#include <asn1dec.h>
+#include <x509cert.h>
+#include <asnpkcs.h>
+#include <pkcs7contentinfo_v2.h>
+#include <pkcs7digestinfo.h>
+#include <pkcs7encrypteddataobject.h>
+#include <pkcs12macdata.h>
+#include <pkcs12safebag.h>
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <pkcs7signedobject.h>
+#endif
+
+namespace PKCS12
+{
+class CDecPkcs12MacData;
+
+/** PKCS12 Version */
+const TInt KPkcs12Version = 3;   
+
+/**
+ Contains methods to decode and return the PFX structure.
+ The structure contains the Version, MacData and AuthSafe.
+ MacData is OPTIONAL.
+ */
+class CDecPkcs12 : public CBase
+	{
+public:
+	enum TIntegrityMode
+	/**
+	 Identifies the type of Integrity Mode used in the PKCS12 PFX Structure
+	 */
+		{
+		/** Password Integrity Mode used in the PKCS12 PFX Structure */
+		EPasswordIntegrityMode = 1,
+		
+		/** Public Key Integrity Mode used in the PKCS12 PFX Structure */
+		EPublicKeyIntegrityMode
+		};  
+    /**
+	 Creates a new PKCS#12 object.
+	 
+	 @param  aRawData Contains a PKCS#12 PFX structure
+	 @return A pointer to the newly allocated object.
+	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
+	 */
+	IMPORT_C static CDecPkcs12* NewL(const TDesC8& aRawData); 
+	
+	/**
+	 Creates a new PKCS#12 object.
+	 
+	 @param  aRawData Contains a PKCS#12 PFX structure
+	 @return A pointer to the newly allocated object.
+	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
+	 */
+	IMPORT_C static CDecPkcs12* NewLC(const TDesC8& aRawData);
+
+	/**
+	 Creates a new PKCS#12 object.
+	 
+	 @param  aStream contains a PKCS#12 PFX structure 
+	 @return A pointer to the newly allocated object.
+	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
+	 */
+	IMPORT_C static CDecPkcs12* NewL(RReadStream& aStream); 
+
+	/**
+	 Creates a new PKCS#12 object.
+	  
+	 @param  aStream Contains a PKCS#12 PFX structure
+	 @return A pointer to the newly allocated object.
+	 @leave  KErrArgument if the aRawData is not Pkcs12 PFX Structure.
+	 */
+	IMPORT_C static CDecPkcs12* NewLC(RReadStream& aStream);
+       
+    /**
+	 Identifies the type of integrity mode used.
+     In the case of Password Integrity mode, OID is 1.2.840.113549.1.7.1.
+     In the case of Public Key Integrity mode, OID is 1.2.840.113549.1.7.2.
+	 
+     @return An enum that identifies the type of integrity mode used.
+     */	
+    IMPORT_C TIntegrityMode IntegrityMode() const;
+	
+	/**
+	 Returns the Version number contained in the PKCS12 PFX Structure.
+	 @return Returns the Version number contained in the PKCS12 PFX Structure..
+     */
+	IMPORT_C TInt Version() const;
+	
+	/**
+	 Returns the authenticated safe.
+	 This authenticated safe is used to find the integrity mode used
+	 and to verify the integrity of the packet. 
+	 
+	 @return A reference to the CPKCS7ContentInfo object.
+	 */	
+	IMPORT_C const CPKCS7ContentInfo& AuthenticatedSafe() const;
+	
+	/**
+	 The MacData, which contains:
+	 - The Mac, that is the PKCS#7 digest info structure.
+	 - The MacSalt.
+	 - The iteration count.
+	 
+	 @return Returns CDecPKCS12MacData object pointer if the MacData is present in the PFX Structure
+	         Returns NULL pointer if the MacData is absent in the PFX Structure.
+	         Returned pointer ownership retains with the object.
+	 */
+	IMPORT_C const CDecPkcs12MacData* MacData() const;
+	
+	/**
+	 These objects represents the ContentInfo Sequences present in the
+	 AuthenticatedSafe Sequence. 
+	 
+	 @return An array of ContentInfo objects
+	 @see	 CPKCS7ContentInfo
+	 */
+	IMPORT_C const RPointerArray<CPKCS7ContentInfo>& AuthenticatedSafeContents() const;
+	
+	/**
+	 Destructor.
+	 */
+	 virtual ~CDecPkcs12();
+	
+private:
+    /**
+     This decodes the entire PFX structure
+     
+	 Main PKCS12 Structure.
+	 PFX ::= SEQUENCE 
+	  	{
+	  	version		INTEGER {v3(3)}(v3,...),
+	  	authSafe	ContentInfo,
+	  	macData    	MacData OPTIONAL
+	  	}
+     
+     @param aRawData Contains a PKCS#12 PFX Structure.
+     @leave KErrArgument if the aRawData is not a Valid Pkcs12 PFX Structure.
+     @see	CPKCS7ContentInfo, CDecPkcs12MacData, CPKCS7SignedObject.
+     */
+	void ConstructL(const TDesC8& aRawData);
+	
+	/**
+	 This method is used to internalise that object and takes a reference 
+	 to an RReadStream as the interface to the read stream. 
+	 @param aStream 	 Contains a PKCS#12 PFX Structure.
+	 @leave KErrArgument if the aStream is not Pkcs12 PFX Structure.
+	 */
+    void InternalizeL(RReadStream& aStream);
+	
+	/**
+	 Constructor.
+	 */
+	 CDecPkcs12();
+	
+	/**
+	 Construtor.
+	 */
+	 CDecPkcs12(RPointerArray<CPKCS7ContentInfo> aContentInfo);
+	  
+	/**
+	 Copy Constructor.
+	 @param aDecPkcs12 A CDecPkcs12 object
+	 */
+	 CDecPkcs12(const CDecPkcs12& aDecPkcs12);
+	 
+	 /**
+	  Assignment operator.
+	  @param aDecPkcs12 A CDecPkcs12 object.
+	  @return A reference to CDecPkcs12 class.
+	  */
+	 CDecPkcs12& operator=(const CDecPkcs12& aDecPkcs12);
+
+private:
+	/** PKCS12 PFX Structure Version number */
+	TInt iVersion;
+	
+	/** Integrity Mode used in PKCS12 PFX Structure*/	
+	TIntegrityMode iMode;
+	
+	/** Contains the macData structure present 
+	    in the PKCS12 PFX Structure*/
+    CDecPkcs12MacData* iMacData;
+    
+    /** This contains the entire AuthenticatedSafe Data 
+        present in the PKCS12 PFX Structure*/
+    CPKCS7ContentInfo* iAuthenticatedSafeData;
+    
+    /** This Contains an Array of ContentInfos present 
+        within the AuthenticatedSafe of PKCS12 PFX Structure*/
+    RPointerArray<CPKCS7ContentInfo> iContentInfos;
+  };
+} // namespace PKCS12 
+
+#endif // __PKCS12_H__