epoc32/include/cryptospi/cryptocharacteristics.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     3
* All rights reserved.
williamr@4
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of the License "Eclipse Public License v1.0"
williamr@4
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     8
*
williamr@4
     9
* Initial Contributors:
williamr@4
    10
* Nokia Corporation - initial contribution.
williamr@4
    11
*
williamr@4
    12
* Contributors:
williamr@4
    13
*
williamr@4
    14
* Description: 
williamr@4
    15
* crypto characteristics
williamr@4
    16
*
williamr@4
    17
*/
williamr@4
    18
williamr@4
    19
williamr@4
    20
/**
williamr@4
    21
 @file
williamr@4
    22
 @publishedAll
williamr@4
    23
 @released
williamr@4
    24
*/
williamr@4
    25
williamr@4
    26
#ifndef __CRYPTOCHARACTERISTICS_H__
williamr@4
    27
#define __CRYPTOCHARACTERISTICS_H__
williamr@4
    28
williamr@4
    29
#include <e32base.h>
williamr@4
    30
#include <e32hashtab.h>
williamr@4
    31
#include <cryptospi/plugincharacteristics.h>
williamr@4
    32
#include <cryptospi/cryptobaseapi.h>
williamr@4
    33
williamr@4
    34
williamr@4
    35
namespace CryptoSpi
williamr@4
    36
	{
williamr@4
    37
	
williamr@4
    38
	/**
williamr@4
    39
	The class holds the common characteristics of an interface.
williamr@4
    40
	which is used for internalization.
williamr@4
    41
	*/
williamr@4
    42
	NONSHARABLE_CLASS(CCharacteristics) : public CBase
williamr@4
    43
		{
williamr@4
    44
	public:	
williamr@4
    45
		/**
williamr@4
    46
		Destructor
williamr@4
    47
		*/
williamr@4
    48
		virtual ~CCharacteristics();
williamr@4
    49
		
williamr@4
    50
		/**
williamr@4
    51
		Internalize this object from the supplied stream.
williamr@4
    52
williamr@4
    53
		@param	aStream Stream to read CCharacteristics from.
williamr@4
    54
		*/
williamr@4
    55
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
    56
		
williamr@4
    57
	protected:
williamr@4
    58
		/**
williamr@4
    59
		 * @internalComponent
williamr@4
    60
		 *
williamr@4
    61
		 * Constructor
williamr@4
    62
		 */
williamr@4
    63
		CCharacteristics();
williamr@4
    64
	
williamr@4
    65
	public:
williamr@4
    66
		/**
williamr@4
    67
		Interface UID, e.g hash, symmetric cipher
williamr@4
    68
		*/
williamr@4
    69
		TInt32 iInterfaceUid;
williamr@4
    70
williamr@4
    71
		/**
williamr@4
    72
		Algorithm UID, e.g MD2, 3DES 
williamr@4
    73
		*/
williamr@4
    74
		TInt32 iAlgorithmUid;
williamr@4
    75
williamr@4
    76
		/**
williamr@4
    77
		Implementaion UID
williamr@4
    78
		*/
williamr@4
    79
		TInt32 iImplementationUid;
williamr@4
    80
williamr@4
    81
		/**
williamr@4
    82
		Creator name
williamr@4
    83
		*/	
williamr@4
    84
		RBuf iCreatorName;
williamr@4
    85
williamr@4
    86
		/**
williamr@4
    87
		whether the implementation is FIPS compliant
williamr@4
    88
		*/
williamr@4
    89
		TBool iIsFIPSApproved;
williamr@4
    90
williamr@4
    91
		/**
williamr@4
    92
		whether the implementation is a hardware one
williamr@4
    93
		*/
williamr@4
    94
		TBool iIsHardwareSupported;
williamr@4
    95
williamr@4
    96
		/**
williamr@4
    97
		the Maximum concurrent operation supported
williamr@4
    98
		*/
williamr@4
    99
		TUint iMaxConcurrencySupported;
williamr@4
   100
		
williamr@4
   101
		/**
williamr@4
   102
		the Algorithm Name
williamr@4
   103
		*/
williamr@4
   104
		RBuf iAlgorithmName;
williamr@4
   105
		
williamr@4
   106
		/**
williamr@4
   107
		The Latency
williamr@4
   108
		*/
williamr@4
   109
		TInt iLatency;
williamr@4
   110
		
williamr@4
   111
		/**
williamr@4
   112
		the Throughput
williamr@4
   113
		*/
williamr@4
   114
		TInt iThroughput;
williamr@4
   115
		};
williamr@4
   116
williamr@4
   117
	/**
williamr@4
   118
	The class holds the hash characteristics.
williamr@4
   119
	which is used for internalization.
williamr@4
   120
	*/
williamr@4
   121
	NONSHARABLE_CLASS(CHashCharacteristics) : public CCharacteristics
williamr@4
   122
		{
williamr@4
   123
	public:
williamr@4
   124
		/**
williamr@4
   125
		@internalComponent
williamr@4
   126
		
williamr@4
   127
		Create a new instance of CHashCharacteristics.
williamr@4
   128
		
williamr@4
   129
		@return the pointer of the hash characteristic
williamr@4
   130
		*/
williamr@4
   131
		static CHashCharacteristics* NewL();
williamr@4
   132
williamr@4
   133
		/**
williamr@4
   134
		@internalComponent
williamr@4
   135
williamr@4
   136
		Create a new instance of CHashCharacteristics, 
williamr@4
   137
		Leave it on the cleanup stack.
williamr@4
   138
		
williamr@4
   139
		@return the pointer of the hash characteristic
williamr@4
   140
		*/			
williamr@4
   141
		static CHashCharacteristics* NewLC();
williamr@4
   142
		
williamr@4
   143
		/**
williamr@4
   144
		Destructor
williamr@4
   145
		*/
williamr@4
   146
		virtual ~CHashCharacteristics();
williamr@4
   147
		
williamr@4
   148
		/**
williamr@4
   149
		Internalize this object from the supplied stream.
williamr@4
   150
williamr@4
   151
		@param	aStream Stream to read CHashCharacteristics from.
williamr@4
   152
		*/
williamr@4
   153
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   154
williamr@4
   155
		/**
williamr@4
   156
		 * @internalComponent
williamr@4
   157
		 *
williamr@4
   158
		 * Determines whether an operation mode (e.g. HMAC) is supported by the plug-in 
williamr@4
   159
		 * by searching through iSupportedOperationModes for the UID value corresponding
williamr@4
   160
		 * to the aOperationMode parameter.
williamr@4
   161
		 * @param aOperationMode	The UID of the operation mode to test
williamr@4
   162
		 * @return ETrue if the operation mode is supported; otherwise, EFalse is returned.
williamr@4
   163
		 */
williamr@4
   164
		TBool IsOperationModeSupported(TUid aOperationMode) const;
williamr@4
   165
		
williamr@4
   166
	private:
williamr@4
   167
		/**
williamr@4
   168
		Constructor
williamr@4
   169
		*/	
williamr@4
   170
		CHashCharacteristics();
williamr@4
   171
	public:
williamr@4
   172
		/**
williamr@4
   173
		The internal block size of the hash in bits
williamr@4
   174
		*/
williamr@4
   175
		TUint iBlockSize;
williamr@4
   176
williamr@4
   177
		/**
williamr@4
   178
		the output size of the hash in bytes
williamr@4
   179
		*/
williamr@4
   180
		TUint iOutputSize;
williamr@4
   181
		
williamr@4
   182
		/**
williamr@4
   183
		The list of supported Operation modes
williamr@4
   184
		*/
williamr@4
   185
		RArray<TInt32> iSupportedOperationModes;
williamr@4
   186
		};
williamr@4
   187
williamr@4
   188
		
williamr@4
   189
#ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT		
williamr@4
   190
		
williamr@4
   191
	/**
williamr@4
   192
	 * The class holds MAC characteristics which is used for internalization
williamr@4
   193
	 * in CryptoSpi framework.
williamr@4
   194
	 */
williamr@4
   195
	NONSHARABLE_CLASS(CMacCharacteristics) : public CCharacteristics
williamr@4
   196
		{
williamr@4
   197
	public:
williamr@4
   198
		/**
williamr@4
   199
		 * @internalComponent
williamr@4
   200
		 * 
williamr@4
   201
		 * Create a new instance of CMacCharacteristics.
williamr@4
   202
		 *
williamr@4
   203
		 * @return the pointer of the Mac characteristic  
williamr@4
   204
		 */
williamr@4
   205
		static CMacCharacteristics* NewL();
williamr@4
   206
williamr@4
   207
		/**
williamr@4
   208
		 * @internalComponent
williamr@4
   209
		 * 
williamr@4
   210
		 * Create a new instance of CMacCharacteristics, Leave it on the cleanup stack.
williamr@4
   211
		 * 
williamr@4
   212
		 * @return the pointer of the Mac characteristic  
williamr@4
   213
	     */			
williamr@4
   214
		static CMacCharacteristics* NewLC();
williamr@4
   215
			
williamr@4
   216
		/**
williamr@4
   217
		 * Destructor
williamr@4
   218
		 */
williamr@4
   219
		virtual ~CMacCharacteristics();
williamr@4
   220
			
williamr@4
   221
		/**
williamr@4
   222
		 * Internalize this object from the supplied stream.
williamr@4
   223
		 * 
williamr@4
   224
		 * @param	aStream Stream to read CMacCharacteristics from. 
williamr@4
   225
         */
williamr@4
   226
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   227
			
williamr@4
   228
	private:
williamr@4
   229
		/**
williamr@4
   230
		 * Constructor
williamr@4
   231
		 */	
williamr@4
   232
		CMacCharacteristics();
williamr@4
   233
williamr@4
   234
	public:
williamr@4
   235
		/**
williamr@4
   236
		 * The Mac mode : Hash based, Cipher based etc.
williamr@4
   237
		 */
williamr@4
   238
		TInt32 iMacMode;
williamr@4
   239
	
williamr@4
   240
		/**
williamr@4
   241
		 * Characteristics of the underlying MAC algorithm
williamr@4
   242
		 */ 
williamr@4
   243
		CCharacteristics* iAlgorithmChar;	
williamr@4
   244
		};
williamr@4
   245
		
williamr@4
   246
#endif		
williamr@4
   247
		
williamr@4
   248
	/**
williamr@4
   249
	The class holds the random characteristics.
williamr@4
   250
	which is used for internalization.
williamr@4
   251
	*/
williamr@4
   252
	NONSHARABLE_CLASS(CRandomCharacteristics) : public CCharacteristics
williamr@4
   253
		{
williamr@4
   254
	public:
williamr@4
   255
		/**
williamr@4
   256
		@internalComponent
williamr@4
   257
		
williamr@4
   258
		Create a new instance of CRandomCharacteristics.
williamr@4
   259
		
williamr@4
   260
		@return the pointer of the random characteristic
williamr@4
   261
		*/	
williamr@4
   262
		static CRandomCharacteristics* NewL();
williamr@4
   263
		
williamr@4
   264
		/**
williamr@4
   265
		@internalComponent
williamr@4
   266
williamr@4
   267
		Create a new instance of CRandomCharacteristics,
williamr@4
   268
		and leave it on the cleanup stack.
williamr@4
   269
		
williamr@4
   270
		@return the pointer of the random characteristic
williamr@4
   271
		*/			
williamr@4
   272
		static CRandomCharacteristics* NewLC();
williamr@4
   273
		
williamr@4
   274
		/**
williamr@4
   275
		Destructor
williamr@4
   276
		*/
williamr@4
   277
		virtual ~CRandomCharacteristics();
williamr@4
   278
		
williamr@4
   279
		/**
williamr@4
   280
		Internalize this object from the supplied stream.
williamr@4
   281
williamr@4
   282
		@param	aStream Stream to read CRandomCharacteristics from.
williamr@4
   283
		*/		
williamr@4
   284
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   285
		
williamr@4
   286
	private:
williamr@4
   287
		/**
williamr@4
   288
		Constructor
williamr@4
   289
		*/
williamr@4
   290
		CRandomCharacteristics();
williamr@4
   291
		
williamr@4
   292
	public:
williamr@4
   293
		/**
williamr@4
   294
		The bit map of blocking non-blocking mode
williamr@4
   295
		*/
williamr@4
   296
		TUint iBlockingMode;
williamr@4
   297
		};
williamr@4
   298
williamr@4
   299
	/**
williamr@4
   300
	The class holds the symmetric cipher characteristics.
williamr@4
   301
	which is used for internalization.
williamr@4
   302
	*/
williamr@4
   303
	NONSHARABLE_CLASS(CSymmetricCipherCharacteristics) : public CCharacteristics
williamr@4
   304
		{
williamr@4
   305
	public:
williamr@4
   306
		/**
williamr@4
   307
		@internalComponent
williamr@4
   308
		
williamr@4
   309
		Create a new instance of CSymmetricCipherCharacteristics.
williamr@4
   310
		
williamr@4
   311
		@return the pointer of the symmetric cipher characteristic
williamr@4
   312
		*/
williamr@4
   313
		static CSymmetricCipherCharacteristics* NewL();
williamr@4
   314
		
williamr@4
   315
		/**
williamr@4
   316
		@internalComponent
williamr@4
   317
		
williamr@4
   318
		Create a new instance of CSymmetricCipherCharacteristics.
williamr@4
   319
		Leave it on the cleanup stack.
williamr@4
   320
		
williamr@4
   321
		@return the pointer of the symmetric cipher characteristic
williamr@4
   322
		*/
williamr@4
   323
		static CSymmetricCipherCharacteristics* NewLC();
williamr@4
   324
		
williamr@4
   325
		/**
williamr@4
   326
		Destructor
williamr@4
   327
		*/
williamr@4
   328
		virtual ~CSymmetricCipherCharacteristics();
williamr@4
   329
		
williamr@4
   330
		/**
williamr@4
   331
		Internalize this object from the supplied stream.
williamr@4
   332
williamr@4
   333
		@param	aStream Stream to read CSymmetricCipherCharacteristics from.
williamr@4
   334
		*/				
williamr@4
   335
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   336
williamr@4
   337
		/**
williamr@4
   338
		@internalComponent
williamr@4
   339
		
williamr@4
   340
		Determines whether a padding mode (e.g. PKCS7) is supported by the plug-in 
williamr@4
   341
		by searching through iSupportedPaddingModes for the UID value corresponding
williamr@4
   342
		to the aPaddingMode parameter.
williamr@4
   343
		@param aPaddingMode	The UID of the padding mode to test.
williamr@4
   344
		@return ETrue if the padding mode is supported; otherwise, EFalse is returned.
williamr@4
   345
		*/
williamr@4
   346
		TBool IsPaddingModeSupported(TUid aPaddingMode) const;
williamr@4
   347
		
williamr@4
   348
		/**
williamr@4
   349
		@internalComponent
williamr@4
   350
williamr@4
   351
		Determines whether an operation mode (e.g. HMAC) is supported by the plug-in 
williamr@4
   352
		by searching through iSupportedOperationModes for the UID value corresponding
williamr@4
   353
		to the aOperationMode parameter.
williamr@4
   354
		@param aOperationMode	The UID of the operation mode to test
williamr@4
   355
		@return ETrue if the operation mode is supported; otherwise, EFalse is returned.
williamr@4
   356
		*/
williamr@4
   357
		TBool IsOperationModeSupported(TUid aOperationMode) const;
williamr@4
   358
		
williamr@4
   359
	private:
williamr@4
   360
		/**
williamr@4
   361
		Constructor
williamr@4
   362
		*/
williamr@4
   363
		CSymmetricCipherCharacteristics();
williamr@4
   364
		
williamr@4
   365
	public:
williamr@4
   366
		/**
williamr@4
   367
		The maximum key length in bits
williamr@4
   368
		*/
williamr@4
   369
		TUint iMaximumKeyLength;
williamr@4
   370
williamr@4
   371
		/**
williamr@4
   372
		The block size of the cipher in bytes
williamr@4
   373
		*/
williamr@4
   374
		TUint iBlockSize;
williamr@4
   375
williamr@4
   376
		/**
williamr@4
   377
		The list of supported padding modes
williamr@4
   378
		*/
williamr@4
   379
		RArray<TInt32> iSupportedPaddingModes;
williamr@4
   380
williamr@4
   381
		/**
williamr@4
   382
		The list of supported Operation modes
williamr@4
   383
		*/
williamr@4
   384
		RArray<TInt32> iSupportedOperationModes;
williamr@4
   385
		
williamr@4
   386
		/**
williamr@4
   387
		The supported key mode bit map. e.g. extern key, internal key or both
williamr@4
   388
		*/
williamr@4
   389
		TInt iKeySupportMode;		
williamr@4
   390
		};
williamr@4
   391
williamr@4
   392
	/**
williamr@4
   393
	The class holds the asymmetric cipher characteristics.
williamr@4
   394
	which is used for internalization.
williamr@4
   395
	*/
williamr@4
   396
	NONSHARABLE_CLASS(CAsymmetricCipherCharacteristics) : public CCharacteristics
williamr@4
   397
		{
williamr@4
   398
	public:
williamr@4
   399
		/**
williamr@4
   400
		@internalComponent
williamr@4
   401
williamr@4
   402
		Create a new instance of CAsymmetricCipherCharacteristics.
williamr@4
   403
		
williamr@4
   404
		@return the pointer of the asymmetric cipher characteristic
williamr@4
   405
		*/	
williamr@4
   406
		static CAsymmetricCipherCharacteristics* NewL();
williamr@4
   407
		
williamr@4
   408
		/**
williamr@4
   409
		@internalComponent
williamr@4
   410
		
williamr@4
   411
		Create a new instance of CAsymmetricCipherCharacteristics.
williamr@4
   412
		Leave it on the cleanup stack.
williamr@4
   413
		
williamr@4
   414
		@return the pointer of the asymmetric cipher characteristic
williamr@4
   415
		*/
williamr@4
   416
		static CAsymmetricCipherCharacteristics* NewLC();
williamr@4
   417
		
williamr@4
   418
		/**
williamr@4
   419
		Destructor
williamr@4
   420
		*/
williamr@4
   421
		virtual ~CAsymmetricCipherCharacteristics();
williamr@4
   422
		
williamr@4
   423
		/**
williamr@4
   424
		Internalize this object from the supplied stream.
williamr@4
   425
williamr@4
   426
		@param	aStream Stream to read CAsymmetricCipherCharacteristics from.
williamr@4
   427
		*/		
williamr@4
   428
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   429
		
williamr@4
   430
		/**
williamr@4
   431
		@internalComponent
williamr@4
   432
		
williamr@4
   433
		Determines whether a padding mode (e.g. PKCS7) is supported by the plug-in 
williamr@4
   434
		by searching through iSupportedPaddingModes for the UID value corresponding
williamr@4
   435
		to the aPaddingMode parameter.
williamr@4
   436
		@param aPaddingMode	The UID of the padding mode to test.
williamr@4
   437
		@return ETrue if the padding mode is supported; otherwise, EFalse is returned.
williamr@4
   438
		*/
williamr@4
   439
		TBool IsPaddingModeSupported(TUid aPaddingMode) const;
williamr@4
   440
williamr@4
   441
	private:
williamr@4
   442
		/**
williamr@4
   443
		Constructor
williamr@4
   444
		*/
williamr@4
   445
		CAsymmetricCipherCharacteristics();
williamr@4
   446
		
williamr@4
   447
	public:
williamr@4
   448
		/**
williamr@4
   449
		The maximum key length in bits
williamr@4
   450
		*/
williamr@4
   451
		TUint iMaximumKeyLength;
williamr@4
   452
	
williamr@4
   453
		/**
williamr@4
   454
		The list of supported padding modes
williamr@4
   455
		*/
williamr@4
   456
		RArray<TInt32> iSupportedPaddingModes;
williamr@4
   457
		
williamr@4
   458
		/**
williamr@4
   459
		The supported key mode bit map. e.g. extern key, internal key or both
williamr@4
   460
		*/
williamr@4
   461
		TInt iKeySupportMode;						
williamr@4
   462
		};
williamr@4
   463
williamr@4
   464
williamr@4
   465
	/**
williamr@4
   466
	The class holds the signature characteristics.
williamr@4
   467
	which is used for internalization.
williamr@4
   468
	*/
williamr@4
   469
	NONSHARABLE_CLASS(CAsymmetricSignatureCharacteristics) : public CCharacteristics
williamr@4
   470
		{
williamr@4
   471
	public:
williamr@4
   472
		/**
williamr@4
   473
		@internalComponent
williamr@4
   474
		
williamr@4
   475
		Create a new instance of CAsymmetricSignatureCharacteristics.
williamr@4
   476
		
williamr@4
   477
		@return the pointer of the asymmetric signature characteristic
williamr@4
   478
		*/		
williamr@4
   479
		static CAsymmetricSignatureCharacteristics* NewL();
williamr@4
   480
		
williamr@4
   481
		/**
williamr@4
   482
		@internalComponent
williamr@4
   483
		
williamr@4
   484
		Create a new instance of CAsymmetricSignatureCharacteristics.
williamr@4
   485
		Leave it on the cleanup stack.
williamr@4
   486
		
williamr@4
   487
		@return the pointer of the asymmetric signature characteristic
williamr@4
   488
		*/				
williamr@4
   489
		static CAsymmetricSignatureCharacteristics* NewLC();
williamr@4
   490
		
williamr@4
   491
		/**
williamr@4
   492
		Destructor
williamr@4
   493
		*/
williamr@4
   494
		virtual ~CAsymmetricSignatureCharacteristics();
williamr@4
   495
		
williamr@4
   496
		/**
williamr@4
   497
		Internalize this object from the supplied stream.
williamr@4
   498
williamr@4
   499
		@param	aStream Stream to read CAsymmetricSignatureCharacteristics from.
williamr@4
   500
		*/				
williamr@4
   501
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   502
		
williamr@4
   503
		/**
williamr@4
   504
		@internalComponent
williamr@4
   505
		
williamr@4
   506
		Determines whether a padding mode (e.g. PKCS7) is supported by the plug-in 
williamr@4
   507
		by searching through iSupportedPaddingModes for the UID value corresponding
williamr@4
   508
		to the aPaddingMode parameter.
williamr@4
   509
		@param aPaddingMode	The UID of the padding mode to test.
williamr@4
   510
		@return ETrue if the padding mode is supported; otherwise, EFalse is returned.
williamr@4
   511
		*/
williamr@4
   512
		TBool IsPaddingModeSupported(TUid aPaddingMode) const;
williamr@4
   513
williamr@4
   514
	private:
williamr@4
   515
		/**
williamr@4
   516
		Constructor
williamr@4
   517
		*/
williamr@4
   518
		CAsymmetricSignatureCharacteristics();
williamr@4
   519
		
williamr@4
   520
	public:
williamr@4
   521
		/**
williamr@4
   522
		The maximum key length in bits
williamr@4
   523
		*/
williamr@4
   524
		TUint iMaximumKeyLength;
williamr@4
   525
	
williamr@4
   526
		/**
williamr@4
   527
		The list of supported padding modes
williamr@4
   528
		*/
williamr@4
   529
		RArray<TInt32> iSupportedPaddingModes;
williamr@4
   530
		
williamr@4
   531
		/**
williamr@4
   532
		The supported key mode bit map. e.g. extern key, internal key or both
williamr@4
   533
		*/
williamr@4
   534
		TInt iKeySupportMode;		
williamr@4
   535
		};
williamr@4
   536
williamr@4
   537
	/**
williamr@4
   538
	The class holds the key agreement characteristics.
williamr@4
   539
	which is used for internalization.
williamr@4
   540
	*/
williamr@4
   541
	NONSHARABLE_CLASS(CKeyAgreementCharacteristics) : public CCharacteristics
williamr@4
   542
		{
williamr@4
   543
	public:
williamr@4
   544
		/**
williamr@4
   545
		@internalComponent
williamr@4
   546
		
williamr@4
   547
		Create a new instance of CKeyAgreementCharacteristics.
williamr@4
   548
		
williamr@4
   549
		@return the pointer of the key agreement characteristic
williamr@4
   550
		*/			
williamr@4
   551
		static CKeyAgreementCharacteristics* NewL();
williamr@4
   552
		
williamr@4
   553
		/**
williamr@4
   554
		@internalComponent
williamr@4
   555
williamr@4
   556
		Create a new instance of CKeyAgreementCharacteristics.
williamr@4
   557
		Leave it on the cleanup stack.
williamr@4
   558
		
williamr@4
   559
		@return the pointer of the key agreement characteristic
williamr@4
   560
		*/
williamr@4
   561
		static CKeyAgreementCharacteristics* NewLC();
williamr@4
   562
williamr@4
   563
		/**
williamr@4
   564
		Destructor
williamr@4
   565
		*/
williamr@4
   566
		virtual ~CKeyAgreementCharacteristics();
williamr@4
   567
		
williamr@4
   568
		/**
williamr@4
   569
		Internalize this object from the supplied stream.
williamr@4
   570
williamr@4
   571
		@param	aStream Stream to read CKeyAgreementCharacteristics from.
williamr@4
   572
		*/
williamr@4
   573
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   574
		
williamr@4
   575
	private:
williamr@4
   576
		/**
williamr@4
   577
		Constructor
williamr@4
   578
		*/	
williamr@4
   579
		CKeyAgreementCharacteristics();
williamr@4
   580
		};
williamr@4
   581
williamr@4
   582
	/**
williamr@4
   583
	The class holds the key pair generator characteristics.
williamr@4
   584
	which is used for internalization.
williamr@4
   585
	*/
williamr@4
   586
	NONSHARABLE_CLASS(CKeypairGeneratorCharacteristics) : public CCharacteristics
williamr@4
   587
		{
williamr@4
   588
	public:
williamr@4
   589
		/**
williamr@4
   590
		@internalComponent
williamr@4
   591
		
williamr@4
   592
		Create a new instance of CKeypairGeneratorCharacteristics.
williamr@4
   593
		
williamr@4
   594
		@return the pointer of the keypair generator characteristic
williamr@4
   595
		*/	
williamr@4
   596
		static CKeypairGeneratorCharacteristics* NewL();
williamr@4
   597
		
williamr@4
   598
		/**
williamr@4
   599
		@internalComponent
williamr@4
   600
		
williamr@4
   601
		Create a new instance of CKeypairGeneratorCharacteristics.
williamr@4
   602
		Leave it on the cleanup stack.
williamr@4
   603
		
williamr@4
   604
		@return the pointer of the keypair generator characteristic
williamr@4
   605
		*/
williamr@4
   606
		static CKeypairGeneratorCharacteristics* NewLC();
williamr@4
   607
williamr@4
   608
		/**
williamr@4
   609
		Destructor
williamr@4
   610
		*/
williamr@4
   611
		virtual ~CKeypairGeneratorCharacteristics();
williamr@4
   612
		
williamr@4
   613
		/**
williamr@4
   614
		Internalize this object from the supplied stream.
williamr@4
   615
williamr@4
   616
		@param	aStream Stream to read CKeyAgreementCharacteristics from.
williamr@4
   617
		*/		
williamr@4
   618
		virtual void InternalizeL(RReadStream& aStream);
williamr@4
   619
		
williamr@4
   620
	private:
williamr@4
   621
		/**
williamr@4
   622
		Constructor
williamr@4
   623
		*/		
williamr@4
   624
		CKeypairGeneratorCharacteristics();
williamr@4
   625
	public:
williamr@4
   626
		/**
williamr@4
   627
		The maximum key length in bits
williamr@4
   628
		*/
williamr@4
   629
		TUint iMaximumKeyLength;
williamr@4
   630
		};
williamr@4
   631
williamr@4
   632
	/**
williamr@4
   633
	The class holds characteristics and dll index.
williamr@4
   634
	which is used for internalization.
williamr@4
   635
	*/
williamr@4
   636
	NONSHARABLE_CLASS(CCharacteristicsAndPluginName) : public CBase
williamr@4
   637
		{
williamr@4
   638
	public:
williamr@4
   639
		/**
williamr@4
   640
		@internalComponent
williamr@4
   641
		
williamr@4
   642
		Create a new instance of CKeypairGeneratorCharacteristics.
williamr@4
   643
		
williamr@4
   644
		@param aInterface the interface uid
williamr@4
   645
		@return the pointer of the keypair generator characteristic
williamr@4
   646
		*/		
williamr@4
   647
		static CCharacteristicsAndPluginName* NewL(TInt32 aInterface);
williamr@4
   648
		
williamr@4
   649
		/**
williamr@4
   650
		@internalComponent
williamr@4
   651
williamr@4
   652
		Create a new instance of CKeypairGeneratorCharacteristics.
williamr@4
   653
		Leave it on the cleanup stack.
williamr@4
   654
		
williamr@4
   655
		@param aInterface the interface uid
williamr@4
   656
		@return the pointer of the keypair generator characteristic
williamr@4
   657
		*/				
williamr@4
   658
		static CCharacteristicsAndPluginName* NewLC(TInt32 aInterface);
williamr@4
   659
		
williamr@4
   660
		/**
williamr@4
   661
		Destructor
williamr@4
   662
		*/		
williamr@4
   663
		virtual ~CCharacteristicsAndPluginName();
williamr@4
   664
		
williamr@4
   665
		/**
williamr@4
   666
		@internalComponent
williamr@4
   667
williamr@4
   668
		Internalize this object from the supplied stream.
williamr@4
   669
williamr@4
   670
		@param	aStream Stream to read CCharacteristicsAndPluginName from.
williamr@4
   671
		*/		
williamr@4
   672
		void InternalizeL(RReadStream& aStream);
williamr@4
   673
		
williamr@4
   674
	protected:
williamr@4
   675
		/**
williamr@4
   676
		 * @internalComponent
williamr@4
   677
		 *
williamr@4
   678
		 * Constructors
williamr@4
   679
		 */
williamr@4
   680
		CCharacteristicsAndPluginName();
williamr@4
   681
		/** @internalComponent */
williamr@4
   682
		void ConstructL(TInt32 aInterface);
williamr@4
   683
		
williamr@4
   684
	public:
williamr@4
   685
		/**
williamr@4
   686
		The characteristic of the crypto implementation
williamr@4
   687
		*/
williamr@4
   688
		CCharacteristics* iCharacteristic;
williamr@4
   689
		
williamr@4
   690
		/**
williamr@4
   691
		The extended characteristic of the crypto implementation
williamr@4
   692
		*/
williamr@4
   693
		CExtendedCharacteristics* iExtendedCharacteristic;
williamr@4
   694
		
williamr@4
   695
		/**
williamr@4
   696
		The name of the plugin dll which contains this implementation
williamr@4
   697
		*/
williamr@4
   698
		TFileName iDllName;		
williamr@4
   699
		};
williamr@4
   700
	}
williamr@4
   701
#endif //__CRYPTOCHARACTERISTICS_H__
williamr@4
   702
williamr@4
   703
williamr@4
   704