diff -r 675a964f4eb5 -r 35751d3474b7 cryptoservices/certificateandkeymgmt/inc/x520ava.h --- a/cryptoservices/certificateandkeymgmt/inc/x520ava.h Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptoservices/certificateandkeymgmt/inc/x520ava.h Thu Sep 10 14:01:51 2009 +0300 @@ -1,327 +1,330 @@ -/* -* Copyright (c) 1998-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: -* Implementation of an attribute type and a value, as defined by the X.520 standard -* -*/ - - - - -/** - @file - @internalTechnology -*/ - -#if !defined(__X520AVA_H__) -#define __X520AVA_H__ - -#include -#include -#include - -/** The attribute type. -* -* @publishedAll -* @released -* @since v6.0 */ -enum TAttributeType - { - /** A common name */ - ECommonName, - /** A locality name */ - ELocalityName, - /** A state or province name */ - EStateOrProvinceName, - /** An organization name */ - EOrganizationName, - /** An organizational unit name */ - EOrganizationalUnitName, - /** A title */ - ETitle, - /** A qualifier */ - EDNQualifier, - /** The name of a country */ - ECountryName, - /** A given name */ - EGivenName, - /** A surname */ - ESurname, - /** Initials */ - EInitials, - /** A generation qualifier */ - EGenerationQualifier, - /** An email address. This is deprecated. */ - EPKCS9EmailAddress, - /** A postal code */ - EPostalCode, - /** A serial number */ - ESerialNumber, - /** An RFC 2247 domain component. - * - * A domain name is made up of an ordered set of components.*/ - ERFC2247DomainComponent, - /** RFC 2256 street component. - * - * A street */ - ERFC2256Street, - /** A name of the subject of a certificate as an unstructured ASCII string */ - EPKCS9UnstructuredName - }; - -//these are the only attribute types we handle at present -_LIT(KX520CountryName,"2.5.4.6"); -_LIT(KX520OrganizationName,"2.5.4.10"); -_LIT(KX520OrganizationalUnitName,"2.5.4.11"); -_LIT(KX520LocalityName,"2.5.4.7"); -_LIT(KX520StateOrProvinceName,"2.5.4.8"); -_LIT(KX520Title,"2.5.4.12"); -_LIT(KX520CommonName,"2.5.4.3"); -_LIT(KX520GivenName,"2.5.4.42"); -_LIT(KX520Surname,"2.5.4.4"); -_LIT(KX520Initials,"2.5.4.43"); -_LIT(KX520GenerationQualifier,"2.5.4.44"); -_LIT(KX520DNQualifier,"2.5.4.46"); -_LIT(KX520SerialNumber,"2.5.4.5"); -_LIT(KX520PostalCode,"2.5.4.17"); -_LIT(KRFC2247DomainComponent, "0.9.2342.19200300.100.1.25"); -_LIT(KRFC2256Street,"2.5.4.9"); -_LIT(KPKCS9UnstructuredName, "1.2.840.113549.1.9.2"); - -//email address is deprecated but we support it anyway... -_LIT(KPKCS9EmailAddress, "1.2.840.113549.1.9.1"); - -/** The maximum length allowed for a country name. */ -const TInt KX520MaxCLength = 2; -/** The maximum length allowed for an organization name. */ -const TInt KX520MaxOLength = 64; -/** The maximum length allowed for an organizational unit name. */ -const TInt KX520MaxOULength = 64; -/** The maximum length allowed for a locality name. */ -const TInt KX520MaxLLength = 128; -/** The maximum length allowed for a state or province name. */ -const TInt KX520MaxSOPLength = 128; -/** The maximum length allowed for an title. */ -const TInt KX520MaxTLength = 64; -/** The maximum length allowed for a common name. */ -const TInt KX520MaxCNLength = 256; -/** The maximum length allowed for a given name. */ -const TInt KX520MaxGNLength = 16; -/** The maximum length allowed for a surname. */ -const TInt KX520MaxSLength = 40; -/** The maximum length allowed for initials. */ -const TInt KX520MaxILength = 5; -/** The maximum length allowed for a generation qualifier. */ -const TInt KX520MaxGQLength = 3; -/** The maximum length allowed for a serial number. */ -const TInt KX520MaxSNLength = 64; -/** The maximum length allowed for a postal code. */ -const TInt KX520MaxPostalCodeLength = 40; -/** The maximum length allowed for an email address. */ -const TInt KPKCS9MaxEmailAddressLength = 256; -/** The maximum length allowed for an unstructured name. */ -const TInt KPKCS9MaxUnstructuredNameLength = 256; -// No maximum was specified in the standard - 128 should be sufficient -/** The maximum length allowed for an RFC 2247 domain component. -* -* Each component of the domain name is a short string. */ -const TInt KRFC2247MaxDomainComponentLength = 128; -/** The maximum length allowed a for street. */ -const TInt KRFC2256StreetLength = 128; - -class CASN1EncSequence; - -class CX520AttributeTypeAndValue : public CBase -/** Contains an attribute type and a value, as defined by the X.520 standard. -* -* A Distinguished Name object, as defined by the X.500 standard, consists of -* a sequence of these objects. -* -* @publishedAll -* @released -* @since v6.0 -*/ -// Attribute and value pair class. Attribute and value pairs -// are used in distinguished names and certificate attributes. -// Stores data in ASN.1 format internally. - { -public: - // Constructs a new object from ASN.1-encoded DER binary data - /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing - * the encoded binary representation. - * - * Initialises the object from its encoded binary form into an internal representation. - * - * @param aBinaryData The encoded binary representation. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewL(const TDesC8& aBinaryData); - - // Constructs a new object from ASN.1-encoded DER binary data - /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing - * the encoded binary representation, and puts a pointer to the new object onto - * the cleanup stack. - * - * Initialises the object from its encoded binary form into an internal representation. - * - * @param aBinaryData The encoded binary representation. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewLC(const TDesC8& aBinaryData); - - // Constructs a new object from ASN.1-encoded DER binary data - /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing - * the encoded binary representation, starting at the specified offset. - * - * Initialises the object from its encoded binary form into an internal representation. - * - * @param aBinaryData The encoded binary representation. - * @param aPos The offset position from which to start decoding. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewL(const TDesC8& aBinaryData, TInt& aPos); - - // Constructs a new object from ASN.1-encoded DER binary data - /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing - * the encoded binary representation, starting at the specified offset, and puts - * a pointer to the new object onto the cleanup stack. - * - * Initialises the object from its encoded binary form into an internal representation. - * - * @param aBinaryData The encoded binary representation. - * @param aPos The offset position from which to start decoding. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewLC(const TDesC8& aBinaryData, TInt& aPos); - - /** Creates a new CX520AttributeTypeAndValue object from an existing object. - * - * This is equivalent to a copy constructor. - * - * @param aPair The CX520AttributeTypeAndValue object. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewL(const CX520AttributeTypeAndValue& aPair); - - /** Creates a new CX520AttributeTypeAndValue object from an existing object, and - * puts a pointer to the new object onto the cleanup stack. - * - * This is equivalent to a copy constructor. - * - * @param aPair The CX520AttributeTypeAndValue object. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewLC(const CX520AttributeTypeAndValue& aPair); - - /** Creates a new CX520AttributeTypeAndValue object from the specified read stream. - * - * @param aStream Stream from which the object is to be internalised. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewL(RReadStream& aStream); - - /** Creates a new CX520AttributeTypeAndValue object from the specified read stream, - * and puts a pointer to the new object onto the cleanup stack. - * - * @param aStream Stream from which the object is to be internalised. - * @return The new CX520AttributeTypeAndValue object. */ - IMPORT_C static CX520AttributeTypeAndValue* NewLC(RReadStream& aStream); - - /** Creates a new CX520AttributeTypeAndValue object from an attribute type and value. - * - * @param aType Attribute type - * @param aValue Attribute value - * @return New CX520AttributeTypeAndValue object */ - IMPORT_C static CX520AttributeTypeAndValue* NewL(TAttributeType aType, const TDesC8& aValue); - - /** Creates a new CX520AttributeTypeAndValue object from an attribute type and value. - * - * @param aType Attribute type - * @param aValue Attribute value - * @return New CX520AttributeTypeAndValue object on the cleanup stack */ - IMPORT_C static CX520AttributeTypeAndValue* NewLC(TAttributeType aType, const TDesC8& aValue); - - /** Destructor. - * - * Frees all resources owned by the object, prior to its destruction. */ - IMPORT_C ~CX520AttributeTypeAndValue(); - - /** Gets the encoded attribute type of the object. - * - * @return A pointer descriptor representing the encoded attribute type. */ - IMPORT_C const TPtrC Type() const; - - /** Gets the encoded attribute value of the object. - * - * @return The pointer descriptor representing the encoded attribute value. */ - IMPORT_C const TPtrC8 EncodedValue() const; - - // Creates a copy of object's ASN.1 DER encoding. - // @return New buffer containing object's ASN.1 DER encoding. - /** Gets the decoded value. - * - * @return A heap descriptor containing the decoded value. */ - IMPORT_C virtual HBufC* ValueL() const; - - /** Encodes the contents into an ASN.1 sequence object. - * - * This is useful to insert attribute type/value pairs into other ASN.1 - * encoding trees. - * - * @return New ASN.1 sequence object containing attribute - * type/value pair in for of an OID and an octet string; - * leaves the returned object on the cleanup stack. */ - IMPORT_C CASN1EncSequence* EncodeASN1LC() const; - - /** Encodes the contents into an ASN.1 sequence object. - * - * Useful to insert attribute type/value pairs into other ASN.1 - * encoding trees. - * - * @return New ASN.1 sequence object containing attribute - * type/value pair in for of an OID and an octet string. */ - IMPORT_C CASN1EncSequence* EncodeASN1L() const; - - // This function compares the current element with aElement. - /** Compares the attribute type and decoded value of the specified object. - * - * @param aElement The CX520AttributeTypeAndValue object to be compared. - * @return ETrue, if the attribute types and the decoded values match; - * EFalse, otherwise. */ - IMPORT_C virtual TBool ExactMatchL(const CX520AttributeTypeAndValue& - aElement) const; - - /** Externalises an object of this class to a write stream. - * - * The presence of this function means that the standard templated operator<<() - * can be used to externalise objects of this class. - * - * @param aStream Stream to which the object should be externalised. */ - virtual void ExternalizeL(RWriteStream& aStream) const; -private: - virtual void InternalizeL(RReadStream& aStream); - CX520AttributeTypeAndValue(const TAttributeType aType); - CX520AttributeTypeAndValue(); ///< Protected default constructor - void ConstructL(const CX520AttributeTypeAndValue& aPair); - void ConstructL(const TDesC8& aBinaryData, TInt& aPos); - void ConstructL(TAttributeType aType, const TDesC8& aValue); - /** - * This method finds out if case-insensitive comparisons must be done or not. - * Email Address is the exceptional case of 'IA5String' value type for which comparisons must be - * done case-insensitivly. - * - * @param aSource contains the encoded value of the attribute type. - * @return ETrue, if case-insensitive comparisons are to be done. - * This is only when value type is a Printable String OR if attribute type is an Email Address. - * EFalse, otherwise. - */ - TBool IsCaseInSensitive(const TDesC8& aSource) const; - HBufC* iType; ///< The encoded type - HBufC8* iValue; ///< The encoded value - }; - -#endif +/* +* Copyright (c) 1998-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: +* Implementation of an attribute type and a value, as defined by the X.520 standard +* +*/ + + +/** + @file + @publishedAll + @released +*/ + +#if !defined(__X520AVA_H__) +#define __X520AVA_H__ + +#include +#include +#include + +//these are for internal use only +//these are the only attribute types we handle at present +_LIT(KX520CountryName,"2.5.4.6"); +_LIT(KX520OrganizationName,"2.5.4.10"); +_LIT(KX520OrganizationalUnitName,"2.5.4.11"); +_LIT(KX520LocalityName,"2.5.4.7"); +_LIT(KX520StateOrProvinceName,"2.5.4.8"); +_LIT(KX520Title,"2.5.4.12"); +_LIT(KX520CommonName,"2.5.4.3"); +_LIT(KX520GivenName,"2.5.4.42"); +_LIT(KX520Surname,"2.5.4.4"); +_LIT(KX520Initials,"2.5.4.43"); +_LIT(KX520GenerationQualifier,"2.5.4.44"); +_LIT(KX520DNQualifier,"2.5.4.46"); +_LIT(KX520SerialNumber,"2.5.4.5"); + +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +//more attribute types we handle at present +_LIT(KX520PostalCode,"2.5.4.17"); +_LIT(KRFC2247DomainComponent, "0.9.2342.19200300.100.1.25"); +_LIT(KRFC2256Street,"2.5.4.9"); +_LIT(KPKCS9UnstructuredName, "1.2.840.113549.1.9.2"); + +//email address is deprecated but we support it anyway... +_LIT(KPKCS9EmailAddress, "1.2.840.113549.1.9.1"); + +/** The maximum length allowed for a country name. */ +const TInt KX520MaxCLength = 2; +/** The maximum length allowed for an organization name. */ +const TInt KX520MaxOLength = 64; +/** The maximum length allowed for an organizational unit name. */ +const TInt KX520MaxOULength = 64; +/** The maximum length allowed for a locality name. */ +const TInt KX520MaxLLength = 128; +/** The maximum length allowed for a state or province name. */ +const TInt KX520MaxSOPLength = 128; +/** The maximum length allowed for an title. */ +const TInt KX520MaxTLength = 64; +/** The maximum length allowed for a common name. */ +const TInt KX520MaxCNLength = 256; +/** The maximum length allowed for a given name. */ +const TInt KX520MaxGNLength = 16; +/** The maximum length allowed for a surname. */ +const TInt KX520MaxSLength = 40; +/** The maximum length allowed for initials. */ +const TInt KX520MaxILength = 5; +/** The maximum length allowed for a generation qualifier. */ +const TInt KX520MaxGQLength = 3; +/** The maximum length allowed for a serial number. */ +const TInt KX520MaxSNLength = 64; +/** The maximum length allowed for a postal code. */ +const TInt KX520MaxPostalCodeLength = 40; +/** The maximum length allowed for an email address. */ +const TInt KPKCS9MaxEmailAddressLength = 256; +/** The maximum length allowed for an unstructured name. */ +const TInt KPKCS9MaxUnstructuredNameLength = 256; +// No maximum was specified in the standard - 128 should be sufficient +/** The maximum length allowed for an RFC 2247 domain component. +* +* Each component of the domain name is a short string. */ +const TInt KRFC2247MaxDomainComponentLength = 128; +/** The maximum length allowed a for street. */ +const TInt KRFC2256StreetLength = 128; + +#endif + + +/** The attribute type. +* +* @since v6.0 */ +enum TAttributeType + { + /** A common name */ + ECommonName, + /** A locality name */ + ELocalityName, + /** A state or province name */ + EStateOrProvinceName, + /** An organization name */ + EOrganizationName, + /** An organizational unit name */ + EOrganizationalUnitName, + /** A title */ + ETitle, + /** A qualifier */ + EDNQualifier, + /** The name of a country */ + ECountryName, + /** A given name */ + EGivenName, + /** A surname */ + ESurname, + /** Initials */ + EInitials, + /** A generation qualifier */ + EGenerationQualifier, + /** An email address. This is deprecated. */ + EPKCS9EmailAddress, + /** A postal code */ + EPostalCode, + /** A serial number */ + ESerialNumber, + /** An RFC 2247 domain component. + * + * A domain name is made up of an ordered set of components.*/ + ERFC2247DomainComponent, + /** RFC 2256 street component. + * + * A street */ + ERFC2256Street, + /** A name of the subject of a certificate as an unstructured ASCII string */ + EPKCS9UnstructuredName + }; + + +class CASN1EncSequence; + +class CX520AttributeTypeAndValue : public CBase +/** Contains an attribute type and a value, as defined by the X.520 standard. +* +* A Distinguished Name object, as defined by the X.500 standard, consists of +* a sequence of these objects. +* +* @since v6.0 +*/ +// Attribute and value pair class. Attribute and value pairs +// are used in distinguished names and certificate attributes. +// Stores data in ASN.1 format internally. + { +public: + // Constructs a new object from ASN.1-encoded DER binary data + /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing + * the encoded binary representation. + * + * Initialises the object from its encoded binary form into an internal representation. + * + * @param aBinaryData The encoded binary representation. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewL(const TDesC8& aBinaryData); + + // Constructs a new object from ASN.1-encoded DER binary data + /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing + * the encoded binary representation, and puts a pointer to the new object onto + * the cleanup stack. + * + * Initialises the object from its encoded binary form into an internal representation. + * + * @param aBinaryData The encoded binary representation. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewLC(const TDesC8& aBinaryData); + + // Constructs a new object from ASN.1-encoded DER binary data + /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing + * the encoded binary representation, starting at the specified offset. + * + * Initialises the object from its encoded binary form into an internal representation. + * + * @param aBinaryData The encoded binary representation. + * @param aPos The offset position from which to start decoding. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewL(const TDesC8& aBinaryData, TInt& aPos); + + // Constructs a new object from ASN.1-encoded DER binary data + /** Creates a new CX520AttributeTypeAndValue object from the specified buffer containing + * the encoded binary representation, starting at the specified offset, and puts + * a pointer to the new object onto the cleanup stack. + * + * Initialises the object from its encoded binary form into an internal representation. + * + * @param aBinaryData The encoded binary representation. + * @param aPos The offset position from which to start decoding. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewLC(const TDesC8& aBinaryData, TInt& aPos); + + /** Creates a new CX520AttributeTypeAndValue object from an existing object. + * + * This is equivalent to a copy constructor. + * + * @param aPair The CX520AttributeTypeAndValue object. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewL(const CX520AttributeTypeAndValue& aPair); + + /** Creates a new CX520AttributeTypeAndValue object from an existing object, and + * puts a pointer to the new object onto the cleanup stack. + * + * This is equivalent to a copy constructor. + * + * @param aPair The CX520AttributeTypeAndValue object. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewLC(const CX520AttributeTypeAndValue& aPair); + + /** Creates a new CX520AttributeTypeAndValue object from the specified read stream. + * + * @param aStream Stream from which the object is to be internalised. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewL(RReadStream& aStream); + + /** Creates a new CX520AttributeTypeAndValue object from the specified read stream, + * and puts a pointer to the new object onto the cleanup stack. + * + * @param aStream Stream from which the object is to be internalised. + * @return The new CX520AttributeTypeAndValue object. */ + IMPORT_C static CX520AttributeTypeAndValue* NewLC(RReadStream& aStream); + + /** Creates a new CX520AttributeTypeAndValue object from an attribute type and value. + * + * @param aType Attribute type + * @param aValue Attribute value + * @return New CX520AttributeTypeAndValue object */ + IMPORT_C static CX520AttributeTypeAndValue* NewL(TAttributeType aType, const TDesC8& aValue); + + /** Creates a new CX520AttributeTypeAndValue object from an attribute type and value. + * + * @param aType Attribute type + * @param aValue Attribute value + * @return New CX520AttributeTypeAndValue object on the cleanup stack */ + IMPORT_C static CX520AttributeTypeAndValue* NewLC(TAttributeType aType, const TDesC8& aValue); + + /** Destructor. + * + * Frees all resources owned by the object, prior to its destruction. */ + IMPORT_C ~CX520AttributeTypeAndValue(); + + /** Gets the encoded attribute type of the object. + * + * @return A pointer descriptor representing the encoded attribute type. */ + IMPORT_C const TPtrC Type() const; + + /** Gets the encoded attribute value of the object. + * + * @return The pointer descriptor representing the encoded attribute value. */ + IMPORT_C const TPtrC8 EncodedValue() const; + + // Creates a copy of object's ASN.1 DER encoding. + // @return New buffer containing object's ASN.1 DER encoding. + /** Gets the decoded value. + * + * @return A heap descriptor containing the decoded value. */ + IMPORT_C virtual HBufC* ValueL() const; + + /** Encodes the contents into an ASN.1 sequence object. + * + * This is useful to insert attribute type/value pairs into other ASN.1 + * encoding trees. + * + * @return New ASN.1 sequence object containing attribute + * type/value pair in for of an OID and an octet string; + * leaves the returned object on the cleanup stack. */ + IMPORT_C CASN1EncSequence* EncodeASN1LC() const; + + /** Encodes the contents into an ASN.1 sequence object. + * + * Useful to insert attribute type/value pairs into other ASN.1 + * encoding trees. + * + * @return New ASN.1 sequence object containing attribute + * type/value pair in for of an OID and an octet string. */ + IMPORT_C CASN1EncSequence* EncodeASN1L() const; + + // This function compares the current element with aElement. + /** Compares the attribute type and decoded value of the specified object. + * + * @param aElement The CX520AttributeTypeAndValue object to be compared. + * @return ETrue, if the attribute types and the decoded values match; + * EFalse, otherwise. */ + IMPORT_C virtual TBool ExactMatchL(const CX520AttributeTypeAndValue& + aElement) const; + + /** Externalises an object of this class to a write stream. + * + * The presence of this function means that the standard templated operator<<() + * can be used to externalise objects of this class. + * + * @param aStream Stream to which the object should be externalised. */ + virtual void ExternalizeL(RWriteStream& aStream) const; +private: + virtual void InternalizeL(RReadStream& aStream); + CX520AttributeTypeAndValue(const TAttributeType aType); + CX520AttributeTypeAndValue(); ///< Protected default constructor + void ConstructL(const CX520AttributeTypeAndValue& aPair); + void ConstructL(const TDesC8& aBinaryData, TInt& aPos); + void ConstructL(TAttributeType aType, const TDesC8& aValue); + /** + * This method finds out if case-insensitive comparisons must be done or not. + * Email Address is the exceptional case of 'IA5String' value type for which comparisons must be + * done case-insensitivly. + * + * @param aSource contains the encoded value of the attribute type. + * @return ETrue, if case-insensitive comparisons are to be done. + * This is only when value type is a Printable String OR if attribute type is an Email Address. + * EFalse, otherwise. + */ + TBool IsCaseInSensitiveL(const TDesC8& aSource) const; + HBufC* iType; ///< The encoded type + HBufC8* iValue; ///< The encoded value + }; + +#endif