diff -r 675a964f4eb5 -r 35751d3474b7 cryptomgmtlibs/cryptotokenfw/inc_interfaces/mcertstore.h --- a/cryptomgmtlibs/cryptotokenfw/inc_interfaces/mcertstore.h Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptomgmtlibs/cryptotokenfw/inc_interfaces/mcertstore.h Thu Sep 10 14:01:51 2009 +0300 @@ -1,178 +1,174 @@ -/* -* Copyright (c) 2001-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 - @publishedAll - @released -*/ - -#ifndef __MCERTINFO_H__ -#define __MCERTINFO_H__ - -#include - -// Forward declarations -class CCTCertInfo; -class CCertAttributeFilter; -class TCTTokenObjectHandle; - - -/** - * @publishedPartner - * @released - * - * Defines the interface for a read-only certificate store. - * - * This documentation describes the security policy that must be enforced by - * implementations of the interface. - */ -class MCertStore - { -public: - /** - * Listing Certificates - */ - - /** - * Get a list of all certificates that satisfy the supplied filter. - * - * This is an async function; all errors are reported by completing aStatus - * with the error value, and it can be cancelled with CancelList(). - * - * @param aCerts An array into which the returned certificates are placed. - * @param aFilter A filter to select which certificates should be included. - * @param aStatus A request status that will be completed when the operation completes. - */ - virtual void List(RMPointerArray& aCerts, const CCertAttributeFilter& aFilter, - TRequestStatus& aStatus) = 0; - - /** Cancels an ongoing List() operation. */ - virtual void CancelList() = 0; - - /** - * Getting a certificate given a handle. - */ - - /** - * Get a certificate given its handle. - * - * @param aCertInfo The returned certificate. - * @param aHandle The handle of the certificate to return. - * @param aStatus The request status object; contains the result of the - * GetCert() request when complete. Set to KErrCancel if any outstanding - * request is cancelled. - */ - virtual void GetCert(CCTCertInfo*& aCertInfo, const TCTTokenObjectHandle& aHandle, - TRequestStatus& aStatus) = 0; - - /** Cancel an ongoing GetCert() operation. */ - virtual void CancelGetCert() = 0; - - /** - * Querying the applications of a certificate. - */ - - /** - * Get the list of the applications associcated with certificate. - * - * Applications are represented by UIDs. Examples would be Software Install, - * TLS, WTLS, WMLScript, SignText, etc.. - * - * @param aCertInfo The certificate to return applications for. - * @param aAplications An array to save the applications in. - * @param aStatus The request status object; contains the result of the - * Applications() request when complete. Set to KErrCancel if any - * outstanding request is cancelled. - */ - virtual void Applications(const CCTCertInfo& aCertInfo, RArray& aAplications, - TRequestStatus& aStatus) = 0; - - /** Cancels an ongoing Applications() operation. */ - virtual void CancelApplications() = 0; - - /** - * Tests if a certificate is applicable to a particular application. - * - * @param aCertInfo The certificate in question. - * @param aApplication The application. - * @param aIsApplicable Set to ETrue or EFalse by the function to return the result. - * @param aStatus The request status object; contains the result of the - * IsApplicable() request when complete. Set to KErrCancel if any - * outstanding request is cancelled. - */ - virtual void IsApplicable(const CCTCertInfo& aCertInfo, TUid aApplication, - TBool& aIsApplicable, TRequestStatus& aStatus) = 0; - - /** Cancels an ongoing IsApplicable() operation. */ - virtual void CancelIsApplicable() = 0; - - /** - * Trust querying - */ - - /** - * Tests whether a certificate is trusted. - * - * Trust is only meaningful for CA certificates where it means that the - * certificate can be used as a trust root for the purposes of certificate - * validation. - * - * @param aCertInfo The certificate we are interested in. - * @param aTrusted Used to return the trust status. - * @param aStatus The request status object; contains the result of the - * Trusted() request when complete. Set to KErrCancel if any outstanding - * request is cancelled. - */ - virtual void Trusted(const CCTCertInfo& aCertInfo, TBool& aTrusted, - TRequestStatus& aStatus) = 0; - - /** Cancels an ongoing Trusted() operation. */ - virtual void CancelTrusted() = 0; - - /** - * Retrieving the actual certificate - */ - - /** - * Retrieves the actual data of the certificate. - * - * @param aCertInfo The certificate to retrieve. - * @param aEncodedCert A buffer to put the certificate in. It must be big - * enough; the size is stored in aCertInfo. - * @param aStatus The request status object; contains the result of the - * Retrieve()request when complete. Set to KErrCancel if any outstanding - * request is cancelled. - * - * @capability ReadUserData This requires the ReadUserData capability when - * applied to user certificates, as these may contain sensitive user data. - * @leave KErrPermissionDenied If called for a user certificate when the - * caller doesn't have the ReadUserData capability. - */ - virtual void Retrieve(const CCTCertInfo& aCertInfo, TDes8& aEncodedCert, - TRequestStatus& aStatus) = 0; - - /** Cancels an ongoing Retrieve() operation. */ - virtual void CancelRetrieve() = 0; - - }; - - -#endif +/* +* Copyright (c) 2001-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 + @publishedAll + @released +*/ + +#ifndef __MCERTINFO_H__ +#define __MCERTINFO_H__ + +#include + +// Forward declarations +class CCTCertInfo; +class CCertAttributeFilter; +class TCTTokenObjectHandle; + + +/** + * + * Defines the interface for a read-only certificate store. + * + * This documentation describes the security policy that must be enforced by + * implementations of the interface. + */ +class MCertStore + { +public: + /** + * Listing Certificates + */ + + /** + * Get a list of all certificates that satisfy the supplied filter. + * + * This is an async function; all errors are reported by completing aStatus + * with the error value, and it can be cancelled with CancelList(). + * + * @param aCerts An array into which the returned certificates are placed. + * @param aFilter A filter to select which certificates should be included. + * @param aStatus A request status that will be completed when the operation completes. + */ + virtual void List(RMPointerArray& aCerts, const CCertAttributeFilter& aFilter, + TRequestStatus& aStatus) = 0; + + /** Cancels an ongoing List() operation. */ + virtual void CancelList() = 0; + + /** + * Getting a certificate given a handle. + */ + + /** + * Get a certificate given its handle. + * + * @param aCertInfo The returned certificate. + * @param aHandle The handle of the certificate to return. + * @param aStatus The request status object; contains the result of the + * GetCert() request when complete. Set to KErrCancel if any outstanding + * request is cancelled. + */ + virtual void GetCert(CCTCertInfo*& aCertInfo, const TCTTokenObjectHandle& aHandle, + TRequestStatus& aStatus) = 0; + + /** Cancel an ongoing GetCert() operation. */ + virtual void CancelGetCert() = 0; + + /** + * Querying the applications of a certificate. + */ + + /** + * Get the list of the applications associcated with certificate. + * + * Applications are represented by UIDs. Examples would be Software Install, + * TLS, WTLS, WMLScript, SignText, etc.. + * + * @param aCertInfo The certificate to return applications for. + * @param aAplications An array to save the applications in. + * @param aStatus The request status object; contains the result of the + * Applications() request when complete. Set to KErrCancel if any + * outstanding request is cancelled. + */ + virtual void Applications(const CCTCertInfo& aCertInfo, RArray& aAplications, + TRequestStatus& aStatus) = 0; + + /** Cancels an ongoing Applications() operation. */ + virtual void CancelApplications() = 0; + + /** + * Tests if a certificate is applicable to a particular application. + * + * @param aCertInfo The certificate in question. + * @param aApplication The application. + * @param aIsApplicable Set to ETrue or EFalse by the function to return the result. + * @param aStatus The request status object; contains the result of the + * IsApplicable() request when complete. Set to KErrCancel if any + * outstanding request is cancelled. + */ + virtual void IsApplicable(const CCTCertInfo& aCertInfo, TUid aApplication, + TBool& aIsApplicable, TRequestStatus& aStatus) = 0; + + /** Cancels an ongoing IsApplicable() operation. */ + virtual void CancelIsApplicable() = 0; + + /** + * Trust querying + */ + + /** + * Tests whether a certificate is trusted. + * + * Trust is only meaningful for CA certificates where it means that the + * certificate can be used as a trust root for the purposes of certificate + * validation. + * + * @param aCertInfo The certificate we are interested in. + * @param aTrusted Used to return the trust status. + * @param aStatus The request status object; contains the result of the + * Trusted() request when complete. Set to KErrCancel if any outstanding + * request is cancelled. + */ + virtual void Trusted(const CCTCertInfo& aCertInfo, TBool& aTrusted, + TRequestStatus& aStatus) = 0; + + /** Cancels an ongoing Trusted() operation. */ + virtual void CancelTrusted() = 0; + + /** + * Retrieving the actual certificate + */ + + /** + * Retrieves the actual data of the certificate. + * + * @param aCertInfo The certificate to retrieve. + * @param aEncodedCert A buffer to put the certificate in. It must be big + * enough; the size is stored in aCertInfo. + * @param aStatus The request status object; contains the result of the + * Retrieve()request when complete. Set to KErrCancel if any outstanding + * request is cancelled. + * + * @capability ReadUserData This requires the ReadUserData capability when + * applied to user certificates, as these may contain sensitive user data. + * @leave KErrPermissionDenied If called for a user certificate when the + * caller doesn't have the ReadUserData capability. + */ + virtual void Retrieve(const CCTCertInfo& aCertInfo, TDes8& aEncodedCert, + TRequestStatus& aStatus) = 0; + + /** Cancels an ongoing Retrieve() operation. */ + virtual void CancelRetrieve() = 0; + + }; + + +#endif