CPKCS7SignedObject Class Reference

class CPKCS7SignedObject : public CSignedObject

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.

Inherits from

Public Member Functions
~CPKCS7SignedObject ()
IMPORT_C const RPointerArray < CPKCS7ExtendedCertificateOrCertificate > & Certificates ()
IMPORT_C const CPKCS7ContentInfo & ContentInfo ()
IMPORT_C const TPtrC8 * DataElementEncoding (const TUint )
IMPORT_C const RPointerArray < CX509AlgorithmIdentifier > & DigestAlgorithms ()
IMPORT_C void InternalizeL ( RReadStream &)
IMPORT_C CPKCS7SignedObject * NewL (const CPKCS7ContentInfo &)
IMPORT_C CPKCS7SignedObject * NewLC (const CPKCS7ContentInfo &)
IMPORT_C const TPtrC8 SignedDataL ()
IMPORT_C const RPointerArray < CPKCS7SignerInfo > & SignerInfo ()
IMPORT_C TBool ValidateSignerL (const CPKCS7SignerInfo &, HBufC8 *&)
IMPORT_C TInt Version ()
Protected Member Functions
CPKCS7SignedObject (void)
IMPORT_C void ConstructL (const CPKCS7ContentInfo &)
Private Member Functions
CPKCS7SignedObject (const CPKCS7SignedObject &)
void DecodeCertificatesL (const TDesC8 &)
void DecodeDigestAlgorithmsL (const TDesC8 &)
void DecodeRevocationListsL (const TDesC8 &)
void DecodeSignedDataL (const TDesC8 &)
void DecodeSignerInfoL (const TDesC8 &)
void InitSignedObjectL (const TDesC8 &)
TBool ValidateSignatureL (const CPKCS7SignerInfo &, const CX509Certificate &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CSignedObject::Encoding()const
CSignedObject::ExternalizeL(RWriteStream &)const
CSignedObject::Fingerprint()const
CSignedObject::SetParametersL(const CSigningKeyParameters &)
CSignedObject::Signature()const
CSignedObject::SigningAlgorithm()const
CSignedObject::VerifyRSASignatureL(const TDesC8 &)const
CSignedObject::VerifyRSASignatureL(const TDesC8 &,const TDesC8 &)const
CSignedObject::VerifySignatureL(const TDesC8 &)const
CSignedObject::VerifySignatureL(const TDesC8 &,const TDesC8 &)const
CSignedObject::~CSignedObject()
Public Member Enumerations
enum anonymous {
EVersionNumber  = 0, EDigestAlgorithms  = 1, EContentInfo  = 2, ECertificates  = 3, ERevocationLists  = 4, ESignedInfo  = 5
}
Protected Attributes
RPointerArray < CPKCS7ExtendedCertificateOrCertificate > iCertificates
CPKCS7ContentInfo * iContentInfo
TFixedArray < TPtrC8 *, KPKCS7MaxDataElements > iDataElements
RPointerArray < CX509AlgorithmIdentifier > iDigestAlgorithms
RPointerArray < CPKCS7SignerInfo > iSignerInfo
TInt iVersion
Inherited Attributes
CSignedObject::iEncoding
CSignedObject::iFingerprint
CSignedObject::iKeyFactory
CSignedObject::iParameters
CSignedObject::iSignature
CSignedObject::iSigningAlgorithm

Constructor & Destructor Documentation

CPKCS7SignedObject(void)

IMPORT_C CPKCS7SignedObject ( void ) [protected]

Parameters

void

CPKCS7SignedObject(const CPKCS7SignedObject &)

CPKCS7SignedObject ( const CPKCS7SignedObject & ) [private]

Parameters

const CPKCS7SignedObject &

~CPKCS7SignedObject()

IMPORT_C ~CPKCS7SignedObject ( )

The destructor

Member Functions Documentation

Certificates()

IMPORT_C const RPointerArray < CPKCS7ExtendedCertificateOrCertificate > & Certificates ( ) const

Provides access to the certificates

ConstructL(const CPKCS7ContentInfo &)

IMPORT_C void ConstructL ( const CPKCS7ContentInfo & aContentInfo ) [protected]

Parameters

const CPKCS7ContentInfo & aContentInfo

ContentInfo()

IMPORT_C const CPKCS7ContentInfo & ContentInfo ( ) const

Provides access to the PKCS7 version number

DataElementEncoding(const TUint)

IMPORT_C const TPtrC8 * DataElementEncoding ( const TUint aIndex ) const [virtual]

(From CSignedObject ) Accesses one of the encoded fields

Parameters

const TUint aIndex One of the data element positions listed in the preceding enum

DecodeCertificatesL(const TDesC8 &)

void DecodeCertificatesL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

DecodeDigestAlgorithmsL(const TDesC8 &)

void DecodeDigestAlgorithmsL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

DecodeRevocationListsL(const TDesC8 &)

void DecodeRevocationListsL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

DecodeSignedDataL(const TDesC8 &)

void DecodeSignedDataL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

DecodeSignerInfoL(const TDesC8 &)

void DecodeSignerInfoL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

DigestAlgorithms()

IMPORT_C const RPointerArray < CX509AlgorithmIdentifier > & DigestAlgorithms ( ) const

Provides access to the digest algorithms

InitSignedObjectL(const TDesC8 &)

void InitSignedObjectL ( const TDesC8 & aRawData ) [private]

Parameters

const TDesC8 & aRawData

InternalizeL(RReadStream &)

IMPORT_C void InternalizeL ( RReadStream & aStream ) [virtual]

(From CSignedObject ) Not supported

Parameters

RReadStream & aStream

NewL(const CPKCS7ContentInfo &)

IMPORT_C CPKCS7SignedObject * NewL ( const CPKCS7ContentInfo & aContentInfo ) [static]

Creates a PKCS7 object from the RFC2315 representation

Parameters

const CPKCS7ContentInfo & aContentInfo

NewLC(const CPKCS7ContentInfo &)

IMPORT_C CPKCS7SignedObject * NewLC ( const CPKCS7ContentInfo & aContentInfo ) [static]

Creates a PKCS7-2 object from the RFC2315 representation

Parameters

const CPKCS7ContentInfo & aContentInfo

SignedDataL()

IMPORT_C const TPtrC8 SignedDataL ( ) const [virtual]

(From CSignedObject ) Provides access to the signed data (PKCS7-2) part of the PKCS7 object

SignerInfo()

IMPORT_C const RPointerArray < CPKCS7SignerInfo > & SignerInfo ( ) const

Provides access to the signer information

ValidateSignatureL(const CPKCS7SignerInfo &, const CX509Certificate &)

TBool ValidateSignatureL ( const CPKCS7SignerInfo & aSignerInfo,
const CX509Certificate & aEndEntityCert
) [private]

Parameters

const CPKCS7SignerInfo & aSignerInfo
const CX509Certificate & aEndEntityCert

ValidateSignerL(const CPKCS7SignerInfo &, HBufC8 *&)

IMPORT_C TBool ValidateSignerL ( const CPKCS7SignerInfo & aSignerInfo,
HBufC8 *& aCertChainEncoding
)

Validates the signer and creates the certificate chain for that signer

Parameters

const CPKCS7SignerInfo & aSignerInfo The signer to be validated
HBufC8 *& aCertChainEncoding The certificate chain. This is created and pushed onto the cleanup stack by the function.

Version()

IMPORT_C TInt Version ( ) const

Provides access to the PKCS7 version number

Member Enumerations Documentation

Enum anonymous

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

Enumerators

EVersionNumber = 0
EDigestAlgorithms = 1
EContentInfo = 2
ECertificates = 3
ERevocationLists = 4
ESignedInfo = 5

Member Data Documentation

RPointerArray< CPKCS7ExtendedCertificateOrCertificate > iCertificates

RPointerArray < CPKCS7ExtendedCertificateOrCertificate > iCertificates [protected]

CPKCS7ContentInfo * iContentInfo

CPKCS7ContentInfo * iContentInfo [protected]

TFixedArray< TPtrC8 *, KPKCS7MaxDataElements > iDataElements

TFixedArray < TPtrC8 *, KPKCS7MaxDataElements > iDataElements [protected]

RPointerArray< CX509AlgorithmIdentifier > iDigestAlgorithms

RPointerArray < CX509AlgorithmIdentifier > iDigestAlgorithms [protected]

RPointerArray< CPKCS7SignerInfo > iSignerInfo

RPointerArray < CPKCS7SignerInfo > iSignerInfo [protected]

TInt iVersion

TInt iVersion [protected]