cryptoservices/certificateandkeymgmt/inc/pkcs7signedobject.h
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/certificateandkeymgmt/inc/pkcs7signedobject.h	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/inc/pkcs7signedobject.h	Thu Sep 10 14:01:51 2009 +0300
@@ -1,155 +1,153 @@
-/*
-* Copyright (c) 2003-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 __PKCS7_SIGNED_OBJECT_H__
-#define __PKCS7_SIGNED_OBJECT_H__
-
-#include <signed.h>
-#include <e32base.h>
-
-class CPKCS7ContentInfo;
-class CPKCS7ExtendedCertificateOrCertificate;
-class CPKCS7SignerInfo;
-class TASN1DecGeneric;
-class CX509AlgorithmIdentifier;
-class CX509Certificate;
-
-const TInt KPKCS7MaxDataElements = 6;
-
-/**
- A representation of a PKCS7 (signed data) entity
- This class is only used for update notifications and so does not provide
- full functionality. In particular, there is no means for creating a new 
- PKCS7 object (other than from binary data),there is no means to modify it 
- and revokation lists are not supported.  The optional fields in signerinfo
- are not supported and are ignored.
- @internalTechnology
- */
-class CPKCS7SignedObject : public CSignedObject
-	{
-public:
-	/**
-	Values for encoded data element positions in tbsCert data structure.
-	These values are passed as the index to the DataElementEncoding() function
-	Objects containing revokation lists are not supported
-	*/
-	enum
-		{
-		EVersionNumber = 0,	
-		EDigestAlgorithms = 1,
-		EContentInfo = 2,
-		ECertificates = 3,
-		ERevocationLists = 4,
-		ESignedInfo = 5
-		};
-	/**
-	Creates a PKCS7 object from the RFC2315 representation
-	@param aRawData	The binary ASN1 encoded entity
-	@return			The fully constructed object
-	*/
-	IMPORT_C static CPKCS7SignedObject* NewL(const CPKCS7ContentInfo& aContentInfo);
-
-	/**
-	Creates a PKCS7-2 object from the RFC2315 representation
-	@param aRawData	The binary ASN1 encoded entity
-	@return			The fully constructed object
-	*/
-	IMPORT_C static CPKCS7SignedObject* NewLC(const CPKCS7ContentInfo& aContentInfo);
-
-	/** (From CSignedObject) 
-	Accesses one of the encoded fields
-	@param aIndex	One of the data element positions listed in the preceding enum
-	@return			The encoded field
-	*/
-	IMPORT_C virtual const TPtrC8* DataElementEncoding(const TUint aIndex) const;
-	/** (From CSignedObject) 
-	Not supported
-	*/
-	IMPORT_C virtual void InternalizeL(RReadStream& aStream) ;
-	/** (From CSignedObject) 
-	Provides access to the signed data (PKCS7-2) part of the PKCS7 object
-	@return			The signed data
-	*/
-	IMPORT_C virtual const TPtrC8 SignedDataL() const;
-	/**
-	Provides access to the digest algorithms
-	@return			The digest algorithms
-	*/
-	IMPORT_C const RPointerArray<CX509AlgorithmIdentifier>& DigestAlgorithms() const;
-	/**
-	Provides access to the PKCS7 version number
-	@return			The version number
-	*/
-	IMPORT_C TInt Version() const;
-	/**
-	Provides access to the PKCS7 version number
-	@return			The version number
-	*/
-	IMPORT_C const CPKCS7ContentInfo& ContentInfo() const;
-	/**
-	Provides access to the certificates
-	@return			The certificates
-	*/
-	IMPORT_C const RPointerArray<CPKCS7ExtendedCertificateOrCertificate>& Certificates() const;
-	/**
-	Provides access to the signer information
-	@return			The signer information
-	*/
-	IMPORT_C const RPointerArray<CPKCS7SignerInfo>& SignerInfo() const;
-	/**
-	Validates the signer and creates the certificate chain for that signer
-	@param aSignerInfo			The signer to be validated
-	@param aCertChainEncoding	The certificate chain.  This is created and pushed onto the
-								cleanup stack by the function.
-	*/
-	IMPORT_C TBool ValidateSignerL(const CPKCS7SignerInfo& aSignerInfo, HBufC8*& aCertChainEncoding);
-	/** The destructor */
-	IMPORT_C ~CPKCS7SignedObject();
-protected:
-	IMPORT_C CPKCS7SignedObject(void);
-	IMPORT_C void ConstructL(const CPKCS7ContentInfo& aContentInfo);
-
-
-private:
-	CPKCS7SignedObject(const CPKCS7SignedObject&);
-	void InitSignedObjectL(const TDesC8& aRawData);
-	void DecodeSignedDataL(const TDesC8& aRawData);
-	void DecodeDigestAlgorithmsL(const TDesC8& aRawData);
-	void DecodeCertificatesL(const TDesC8& aRawData);
-	void DecodeRevocationListsL(const TDesC8& aRawData);
-	void DecodeSignerInfoL(const TDesC8& aRawData);
-
-	TBool ValidateSignatureL(const CPKCS7SignerInfo& aSignerInfo, const CX509Certificate& aEndEntityCert);
-protected:
-	RPointerArray<CX509AlgorithmIdentifier> iDigestAlgorithms;
-	TInt iVersion;
-	CPKCS7ContentInfo* iContentInfo;
-	RPointerArray<CPKCS7ExtendedCertificateOrCertificate> iCertificates;
-	RPointerArray<CPKCS7SignerInfo> iSignerInfo;
-	TFixedArray<TPtrC8*, KPKCS7MaxDataElements> iDataElements;
-	};
-
-#endif //__PKCS7_SIGNED_OBJECT_H__
+/*
+* Copyright (c) 2003-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
+ @internalTechnology
+ @released
+*/
+
+#ifndef __PKCS7_SIGNED_OBJECT_H__
+#define __PKCS7_SIGNED_OBJECT_H__
+
+#include <signed.h>
+#include <e32base.h>
+
+const TInt KPKCS7MaxDataElements = 6;
+
+class CPKCS7ContentInfo;
+class CPKCS7ExtendedCertificateOrCertificate;
+class CPKCS7SignerInfo;
+class TASN1DecGeneric;
+class CX509AlgorithmIdentifier;
+class CX509Certificate;
+
+/**
+ A representation of a PKCS7 (signed data) entity
+ This class is only used for update notifications and so does not provide
+ full functionality. In particular, there is no means for creating a new 
+ PKCS7 object (other than from binary data),there is no means to modify it 
+ and revokation lists are not supported.  The optional fields in signerinfo
+ are not supported and are ignored.
+ @internalTechnology
+ */
+class CPKCS7SignedObject : public CSignedObject
+	{
+public:
+	/**
+	Values for encoded data element positions in tbsCert data structure.
+	These values are passed as the index to the DataElementEncoding() function
+	Objects containing revokation lists are not supported
+	*/
+	enum
+		{
+		EVersionNumber = 0,	
+		EDigestAlgorithms = 1,
+		EContentInfo = 2,
+		ECertificates = 3,
+		ERevocationLists = 4,
+		ESignedInfo = 5
+		};
+	/**
+	Creates a PKCS7 object from the RFC2315 representation
+	@param aRawData	The binary ASN1 encoded entity
+	@return			The fully constructed object
+	*/
+	IMPORT_C static CPKCS7SignedObject* NewL(const CPKCS7ContentInfo& aContentInfo);
+
+	/**
+	Creates a PKCS7-2 object from the RFC2315 representation
+	@param aRawData	The binary ASN1 encoded entity
+	@return			The fully constructed object
+	*/
+	IMPORT_C static CPKCS7SignedObject* NewLC(const CPKCS7ContentInfo& aContentInfo);
+
+	/** (From CSignedObject) 
+	Accesses one of the encoded fields
+	@param aIndex	One of the data element positions listed in the preceding enum
+	@return			The encoded field
+	*/
+	IMPORT_C virtual const TPtrC8* DataElementEncoding(const TUint aIndex) const;
+	/** (From CSignedObject) 
+	Not supported
+	*/
+	IMPORT_C virtual void InternalizeL(RReadStream& aStream) ;
+	/** (From CSignedObject) 
+	Provides access to the signed data (PKCS7-2) part of the PKCS7 object
+	@return			The signed data
+	*/
+	IMPORT_C virtual const TPtrC8 SignedDataL() const;
+	/**
+	Provides access to the digest algorithms
+	@return			The digest algorithms
+	*/
+	IMPORT_C const RPointerArray<CX509AlgorithmIdentifier>& DigestAlgorithms() const;
+	/**
+	Provides access to the PKCS7 version number
+	@return			The version number
+	*/
+	IMPORT_C TInt Version() const;
+	/**
+	Provides access to the PKCS7 version number
+	@return			The version number
+	*/
+	IMPORT_C const CPKCS7ContentInfo& ContentInfo() const;
+	/**
+	Provides access to the certificates
+	@return			The certificates
+	*/
+	IMPORT_C const RPointerArray<CPKCS7ExtendedCertificateOrCertificate>& Certificates() const;
+	/**
+	Provides access to the signer information
+	@return			The signer information
+	*/
+	IMPORT_C const RPointerArray<CPKCS7SignerInfo>& SignerInfo() const;
+	/**
+	Validates the signer and creates the certificate chain for that signer
+	@param aSignerInfo			The signer to be validated
+	@param aCertChainEncoding	The certificate chain.  This is created and pushed onto the
+								cleanup stack by the function.
+	*/
+	IMPORT_C TBool ValidateSignerL(const CPKCS7SignerInfo& aSignerInfo, HBufC8*& aCertChainEncoding);
+	/** The destructor */
+	IMPORT_C ~CPKCS7SignedObject();
+protected:
+	IMPORT_C CPKCS7SignedObject(void);
+	IMPORT_C void ConstructL(const CPKCS7ContentInfo& aContentInfo);
+
+
+private:
+	CPKCS7SignedObject(const CPKCS7SignedObject&);
+	void InitSignedObjectL(const TDesC8& aRawData);
+	void DecodeSignedDataL(const TDesC8& aRawData);
+	void DecodeDigestAlgorithmsL(const TDesC8& aRawData);
+	void DecodeCertificatesL(const TDesC8& aRawData);
+	void DecodeRevocationListsL(const TDesC8& aRawData);
+	void DecodeSignerInfoL(const TDesC8& aRawData);
+
+	TBool ValidateSignatureL(const CPKCS7SignerInfo& aSignerInfo, const CX509Certificate& aEndEntityCert);
+protected:
+	RPointerArray<CX509AlgorithmIdentifier> iDigestAlgorithms;
+	TInt iVersion;
+	CPKCS7ContentInfo* iContentInfo;
+	RPointerArray<CPKCS7ExtendedCertificateOrCertificate> iCertificates;
+	RPointerArray<CPKCS7SignerInfo> iSignerInfo;
+	TFixedArray<TPtrC8*, KPKCS7MaxDataElements> iDataElements;
+	};
+
+#endif //__PKCS7_SIGNED_OBJECT_H__