class CWTLSCertChainAO : public CActive |
This class handles the asynchronous part of the wtls chain validation. It is an active object which handles the asynchronous certificate store operations.
Public Member Functions | |
---|---|
~CWTLSCertChainAO() | |
void | DoCancel() |
CWTLSCertChainAO * | NewL(RFs &, CWTLSCertChain &, const CArrayPtr< CWTLSCertificate > &) |
CWTLSCertChainAO * | NewL(RFs &, CWTLSCertChain &, const TUid) |
TInt | RunError(TInt) |
void | RunL() |
void | Validate(CWTLSValidationResult &, const TTime &, TRequestStatus &) |
Private Member Functions | |
---|---|
CWTLSCertChainAO(RFs &, CWTLSCertChain &) | |
CWTLSCertChainAO(RFs &, CWTLSCertChain &, const TUid) | |
TBool | CheckSignatureAndNameL(const CWTLSCertificate &, CWTLSValidationResult &, TInt) |
TBool | CheckValidityPeriod(const CWTLSCertificate &, CWTLSValidationResult &, const TTime, TInt) |
void | ConstructL(const CArrayPtr< CWTLSCertificate > &) |
HBufC8 & | GeneratePublicKeyHashL(const CWTLSCertificate &) |
void | HandleEAddRootToListL() |
void | HandleECheckTCAL() |
void | HandleEFindRootL() |
void | HandleEGetCertHashesL() |
void | HandleEIsChainSelfSignedL() |
void | HandleEPruneListDoneL() |
void | HandleEPruneListL() |
void | HandleERetrieveRootsL() |
void | HandleEStoreManagerInitializationL() |
void | HandleEStoreManagerInitializedL() |
void | HandleEValidateEndL() |
Private Member Enumerations | |
---|---|
enum | TState { EStoreManagerInitialization = 0, EStoreManagerInitialized, EGetCertHashes, EPruneList, EPruneListDone, ECheckTCA, EIsChainSelfSigned, ERetrieveRoots, EAddRootToList, EFindRoot, EValidateEnd } |
Inherited Enumerations | |
---|---|
CActive:TPriority |
Inherited Attributes | |
---|---|
CActive::iStatus |
CWTLSCertChainAO | ( | RFs & | aFs, |
CWTLSCertChain & | aWTLSCertChain | ||
) | [private] |
RFs & aFs | |
CWTLSCertChain & aWTLSCertChain |
CWTLSCertChainAO | ( | RFs & | aFs, |
CWTLSCertChain & | aWTLSCertChain, | ||
const TUid | aClient | ||
) | [private] |
RFs & aFs | |
CWTLSCertChain & aWTLSCertChain | |
const TUid aClient |
TBool | CheckSignatureAndNameL | ( | const CWTLSCertificate & | aCert, |
CWTLSValidationResult & | aResult, | |||
TInt | aPos | |||
) | const [private] |
const CWTLSCertificate & aCert | |
CWTLSValidationResult & aResult | |
TInt aPos |
TBool | CheckValidityPeriod | ( | const CWTLSCertificate & | aCert, |
CWTLSValidationResult & | aResult, | |||
const TTime | aTime, | |||
TInt | aPos | |||
) | const [private] |
const CWTLSCertificate & aCert | |
CWTLSValidationResult & aResult | |
const TTime aTime | |
TInt aPos |
void | ConstructL | ( | const CArrayPtr< CWTLSCertificate > & | aRootCerts | ) | [private] |
const CArrayPtr< CWTLSCertificate > & aRootCerts |
void | DoCancel | ( | ) | [virtual] |
Implements cancellation of an outstanding request.
This function is called as part of the active object's Cancel().
It must call the appropriate cancel function offered by the active object's asynchronous service provider. The asynchronous service provider's cancel is expected to act immediately.
DoCancel() must not wait for event completion; this is handled by Cancel().
HBufC8 & | GeneratePublicKeyHashL | ( | const CWTLSCertificate & | aCert | ) | const [private] |
const CWTLSCertificate & aCert |
void | HandleEStoreManagerInitializationL | ( | ) | [private] |
This function creates a CCertStoreManager, calls CCertStoreManager initialise and sets the state to EStoreManagerInitialized
CWTLSCertChainAO * | NewL | ( | RFs & | aFs, |
CWTLSCertChain & | aWTLSCertChain, | |||
const CArrayPtr< CWTLSCertificate > & | aRootCerts | |||
) | [static] |
RFs & aFs | |
CWTLSCertChain & aWTLSCertChain | |
const CArrayPtr< CWTLSCertificate > & aRootCerts |
CWTLSCertChainAO * | NewL | ( | RFs & | aFs, |
CWTLSCertChain & | aWTLSCertChain, | |||
const TUid | aClient | |||
) | [static] |
RFs & aFs | |
CWTLSCertChain & aWTLSCertChain | |
const TUid aClient |
void | RunL | ( | ) | [virtual] |
Handles an active object's request completion event.
A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.
The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes.
Before calling this active object's RunL() function, the active scheduler has:
1. decided that this is the highest priority active object with a completed request
2. marked this active object's request as complete (i.e. the request is no longer outstanding)
RunL() runs under a trap harness in the active scheduler. If it leaves, then the active scheduler calls RunError() to handle the leave.
Note that once the active scheduler's Start() function has been called, all user code is run under one of the program's active object's RunL() or RunError() functions.
CActiveScheduler::WaitForAnyRequest
TRAPD
void | Validate | ( | CWTLSValidationResult & | aValidationResult, |
const TTime & | aValidationTime, | |||
TRequestStatus & | aStatus | |||
) |
CWTLSValidationResult & aValidationResult | |
const TTime & aValidationTime | |
TRequestStatus & aStatus |
EStoreManagerInitialization = 0 | |
EStoreManagerInitialized | |
EGetCertHashes | |
EPruneList | |
EPruneListDone | |
ECheckTCA | |
EIsChainSelfSigned | |
ERetrieveRoots | |
EAddRootToList | |
EFindRoot | |
EValidateEnd |
RMPointerArray< CCTCertInfo > | iCertInfos | [private] |
Stores info on the certs in the cert store We own this object and all its elements
TBool | iFoundRoot | [private] |
Indicates if a root cert has been found for this particular chain
TInt | iPrunedChainLength | [private] |
The index within iChain that the chain was pruned
RPointerArray< HBufC8 > | iRootSubjectClientHashList | [private] |
List of the subject hashes from the passed in certs We own this object and all its elements
RPointerArray< TBuf8< 20 > > | iRootSubjectStoreHashList | [private] |
List of the subject hashes from the cert store The elements remained owned by the CCTCertInfo
RPointerArray< CWTLSCertificate > | iRootsFromClient | [private] |
Roots passed in from the client that we trust We own this object and all its elements
RPointerArray< CWTLSCertificate > | iRootsFromStore | [private] |
Roots from the specified cert store that we trust. We own this object and all its elements
CWTLSValidationResult * | iValidationResult | [private] |
To store the parameters passed to CWTLSCertChain::Validate
const TTime * | iValidationTime | [private] |
To store the parameters passed to CWTLSCertChain::Validate