Update contrib.
2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * crypto spi data definition
26 #ifndef __CRYPTOAPI_CRYPTOSPIDEF_H__
27 #define __CRYPTOAPI_CRYPTOSPIDEF_H__
34 Definition of Cryptography interface UID value
36 const TInt32 KHashInterface = 0x10283161;
37 const TInt32 KRandomInterface = 0x10283162;
38 const TInt32 KSymmetricCipherInterface = 0x10283163;
39 const TInt32 KAsymmetricCipherInterface = 0x10283164;
40 const TInt32 KSignerInterface = 0x10283165;
41 const TInt32 KVerifierInterface = 0x10283166;
42 const TInt32 KKeyAgreementInterface = 0x10283167;
43 const TInt32 KKeyGeneratorInterface = 0x10283168;
44 const TInt32 KKeypairGeneratorInterface = 0x10283169;
45 const TInt32 KAsyncHashInterface = 0x1028316a;
46 const TInt32 KAsyncRandomInterface = 0x1028316b;
47 const TInt32 KAsyncSymmetricCipherInterface = 0x1028316c;
48 const TInt32 KAsyncAsymmetricCipherInterface = 0x1028316d;
49 const TInt32 KAsyncSignerInterface = 0x1028316e;
50 const TInt32 KAsyncVerifierInterface = 0x1028316f;
51 const TInt32 KAsyncKeyAgreementInterface = 0x10283170;
52 const TInt32 KAsyncKeyGeneratorInterface = 0x10283171;
53 const TInt32 KAsyncKeypairGeneratorInterface = 0x10283172;
56 /******************************MAC INTERFACE UIDS**********************************/
58 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
62 const TInt32 KMacInterface = 0x2001ED9A;
64 * Asynchronous Mac Interface Uid
66 const TInt32 KAsyncMacInterface = 0x2001ED9B;
68 * Definition of Mac mode Uid value
70 const TInt32 KSymmetricCipherMode = 0x2001ED9C;
72 * Definition of Mac algorithm UID value
74 const TInt32 KAlgorithmCipherAesXcbcMac96 = 0x2001ED9D;
75 const TInt32 KAlgorithmCipherAesXcbcPrf128 = 0x2001ED9E;
79 const TUid KMacInterfaceUid={KMacInterface};
80 const TUid KAsyncMacInterfaceUid={KAsyncMacInterface};
81 const TUid KSymmetricCipherModeUid = {KSymmetricCipherMode};
82 const TUid KAesXcbcMac96Uid = {KAlgorithmCipherAesXcbcMac96};
83 const TUid KAesXcbcPrf128Uid = {KAlgorithmCipherAesXcbcPrf128};
87 /********************************************************************************/
93 const TUid KHashInterfaceUid={KHashInterface};
100 const TUid KRandomInterfaceUid={KRandomInterface};
103 Symmetric Cipher Interface Uid
105 const TUid KSymmetricCipherInterfaceUid={KSymmetricCipherInterface};
108 Asymmetric Cipher Interface Uid
110 const TUid KAsymmetricCipherInterfaceUid={KAsymmetricCipherInterface};
115 const TUid KSignerInterfaceUid={KSignerInterface};
118 Verifier Interface Uid
120 const TUid KVerifierInterfaceUid={KVerifierInterface};
123 Key Agreement Interface Uid
125 const TUid KKeyAgreementInterfaceUid={KKeyAgreementInterface};
128 Key generator Interface Uid
130 const TUid KKeyGeneratorInterfaceUid={KKeyGeneratorInterface};
133 Key generator Interface Uid
135 const TUid KKeypairGeneratorInterfaceUid={KKeypairGeneratorInterface};
138 Asynchronous Hash Interface Uid
140 const TUid KAsyncHashInterfaceUid={KAsyncHashInterface};
143 Asynchronous Random Interface Uid
145 const TUid KAsyncRandomInterfaceUid={KAsyncRandomInterface};
148 Asynchronous Symmetric Cipher Interface Uid
150 const TUid KAsyncSymmetricCipherInterfaceUid={KAsyncSymmetricCipherInterface};
153 Asynchronous Asymmetric Cipher Interface Uid
155 const TUid KAsyncAsymmetricCipherInterfaceUid={KAsyncAsymmetricCipherInterface};
158 Asynchronous Signer Interface Uid
160 const TUid KAsyncSignerInterfaceUid={KAsyncSignerInterface};
163 Asynchronous Verifier Interface Uid
165 const TUid KAsyncVerifierInterfaceUid={KAsyncVerifierInterface};
168 Asynchronous Key Agreement Interface Uid
170 const TUid KAsyncKeyAgreementInterfaceUid={KAsyncKeyAgreementInterface};
173 Asynchronous Key generator Interface Uid
175 const TUid KAsyncKeyGeneratorInterfaceUid={KAsyncKeyGeneratorInterface};
178 Asynchronous Key generator Interface Uid
180 const TUid KAsyncKeypairGeneratorInterfaceUid={KAsyncKeypairGeneratorInterface};
182 // Need to initialise directly by element to avoid ARMV5 compiler generating
183 // an array construction table which causes writable global data to be placed
184 // in the binary (writable global data is not permitted by the movable memory
185 // model which e.g., the H2 reference board has to use).
186 const TUid KInterfacesUids[]=
190 {KSymmetricCipherInterface},
191 {KAsymmetricCipherInterface},
193 {KVerifierInterface},
194 {KKeyAgreementInterface},
195 {KKeyGeneratorInterface},
196 {KKeypairGeneratorInterface},
197 {KAsyncHashInterface},
198 {KAsyncRandomInterface},
199 {KAsyncSymmetricCipherInterface},
200 {KAsyncAsymmetricCipherInterface},
201 {KAsyncSignerInterface},
202 {KAsyncVerifierInterface},
203 {KAsyncKeyAgreementInterface},
204 {KAsyncKeyGeneratorInterface},
205 {KAsyncKeypairGeneratorInterface},
206 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
208 {KAsyncMacInterface},
213 Definition of Hash algorithm UID value
215 const TInt32 KAlgorithmHashMd2 = 0x10283173;
216 const TInt32 KAlgorithmHashMd4 = 0x2000B341;
217 const TInt32 KAlgorithmHashMd5 = 0x10283174;
218 const TInt32 KAlgorithmHashSha1 = 0x10283175;
219 const TInt32 KAlgorithmHashSha224 = 0x2000E258;
220 const TInt32 KAlgorithmHashSha256 = 0x2000E259;
221 const TInt32 KAlgorithmHashSha384 = 0x2000E25A;
222 const TInt32 KAlgorithmHashSha512 = 0x2000E25B;
227 const TUid KMd2Uid={KAlgorithmHashMd2};
232 const TUid KMd4Uid={KAlgorithmHashMd4};
237 const TUid KMd5Uid={KAlgorithmHashMd5};
242 const TUid KSha1Uid={KAlgorithmHashSha1};
247 const TUid KSha224Uid={KAlgorithmHashSha224};
252 const TUid KSha256Uid={KAlgorithmHashSha256};
257 const TUid KSha384Uid={KAlgorithmHashSha384};
262 const TUid KSha512Uid={KAlgorithmHashSha512};
265 Definition of hash mode Uid value
267 const TInt32 KHashMode = 0x10283176;
268 const TInt32 KHmacMode = 0x10283177;
273 const TUid KHashModeUid = {KHashMode};
278 const TUid KHmacModeUid = {KHmacMode};
281 Definition of Random algorithm UID value
283 const TInt32 KAlgorithmRandom = 0x10283178;
288 const TUid KRandomUid={KAlgorithmRandom};
291 Definition of Symmetric Cipher algorithm UID value
293 const TInt32 KAlgorithmCipherDes = 0x10283179;
294 const TInt32 KAlgorithmCipher3Des = 0x1028317a;
295 const TInt32 KAlgorithmCipherRc2 = 0x1028317b;
296 const TInt32 KAlgorithmCipherArc4 = 0x1028317c;
297 const TInt32 KAlgorithmCipherAes = 0x1028317d;
298 const TInt32 KAlgorithmCipherMisty1 = 0x102831be;
299 const TInt32 KAlgorithmCipherMisty2 = 0x102831bf;
300 const TInt32 KAlgorithmCipherKasumi = 0x102831c0;
305 const TUid KDesUid={KAlgorithmCipherDes};
310 const TUid K3DesUid={KAlgorithmCipher3Des};
315 const TUid KRc2Uid={KAlgorithmCipherRc2};
320 const TUid KArc4Uid={KAlgorithmCipherArc4};
325 const TUid KAesUid={KAlgorithmCipherAes};
328 Misty1 (RFC 2294) algorithm Uid
330 const TUid KMisty1Uid={KAlgorithmCipherMisty1};
335 const TUid KMisty2Uid={KAlgorithmCipherMisty2};
340 const TUid KKasumiUid={KAlgorithmCipherKasumi};
343 Definition of Asymmetric Cipher algorithm UID value
345 const TInt32 KAlgorithmCipherRsa = 0x1028317e;
348 Rsa Cipher algorithm Uid
350 const TUid KRsaCipherUid={KAlgorithmCipherRsa};
353 Definition of Signer algorithm UID value
355 const TInt32 KAlgorithmSignerRsa = 0x1028317f;
356 const TInt32 KAlgorithmSignerDsa = 0x10283180;
359 Rsa Signer algorithm Uid
361 const TUid KRsaSignerUid={KAlgorithmSignerRsa};
364 Dsa Signer algorithm Uid
366 const TUid KDsaSignerUid={KAlgorithmSignerDsa};
369 Definition of Verifier algorithm UID value
371 const TInt32 KAlgorithmVerifierRsa = 0x10283181;
372 const TInt32 KAlgorithmVerifierDsa = 0x10283182;
375 Rsa Veifier algorithm Uid
377 const TUid KRsaVerifierUid={KAlgorithmVerifierRsa};
380 Dsa Signer algorithm Uid
382 const TUid KDsaVerifierUid={KAlgorithmVerifierDsa};
386 Definition of Key Agreement algorithm UID value
388 const TInt32 KAlgorithmKeyAgreementDH = 0x10283183;
391 DH Agreement algorithm Uid
393 const TUid KDHAgreementUid={KAlgorithmKeyAgreementDH};
396 Definition of Key Pair Generator algorithm UID value
398 const TInt32 KAlgorithmDHKeyPairGenerator = 0x10283184;
399 const TInt32 KAlgorithmRSAKeyPairGenerator = 0x10283185;
400 const TInt32 KAlgorithmDSAKeyPairGenerator = 0x10283186;
402 DH Key Pair Generator Algorithm Uid
404 const TUid KDHKeyPairGeneratorUid={KAlgorithmDHKeyPairGenerator};
407 RSA Key Pair Generator Algorithm Uid
409 const TUid KRSAKeyPairGeneratorUid={KAlgorithmRSAKeyPairGenerator};
412 DSA Key Pair Generator Algorithm Uid
414 const TUid KDSAKeyPairGeneratorUid={KAlgorithmDSAKeyPairGenerator};
417 This fake interface uid is used to allow the sub-class of CPadding
418 to be determined via Extension_ because true RTTI is not supported.
420 const TInt32 KPaddingInterface = 0x10283187;
421 const TUid KPaddingInterfaceUid = {KPaddingInterface};
424 Definition of Padding mode UID value
426 const TInt32 KPaddingModeNone = 0x10283188;
427 const TInt32 KPaddingModeSSLv3 = 0x10283189;
428 const TInt32 KPaddingModePKCS7 = 0x1028318a;
429 const TInt32 KPaddingModePkcs1_v1_5_Encryption = 0x1028318b;
430 const TInt32 KPaddingModePkcs1_v1_5_Signature = 0x1028318c;
433 Padding Mode None Uid
435 const TUid KPaddingModeNoneUid = {KPaddingModeNone};
438 SSLv3 Padding Mode Uid
440 const TUid KPaddingModeSSLv3Uid = {KPaddingModeSSLv3};
443 PKCS7 Padding Mode Uid
445 const TUid KPaddingModePKCS7Uid = {KPaddingModePKCS7};
448 Pkcs1 v1.5 Encryption Padding mode Uid
450 const TUid KPaddingModePkcs1_v1_5_EncryptionUid = {KPaddingModePkcs1_v1_5_Encryption};
453 Pkcs1 v1.5 Signature Padding mode Uid
455 const TUid KPaddingModePkcs1_v1_5_SignatureUid = {KPaddingModePkcs1_v1_5_Signature};
458 Definition of Cryptography mode UID value
460 const TInt32 KCryptoModeEncrypt = 0x1028318d;
461 const TInt32 KCryptoModeDecrypt = 0x1028318e;
462 const TInt32 KCryptoModeNone = 0x1028318f;
465 Crypto Encrypt Mode Uid
467 const TUid KCryptoModeEncryptUid = {KCryptoModeEncrypt};
470 Crypto Decrypt Mode Uid
472 const TUid KCryptoModeDecryptUid = {KCryptoModeDecrypt};
477 const TUid KCryptoModeNoneUid = {KCryptoModeNone};
480 Definition of Symmetric operation mode Uid value
482 const TInt32 KOperationModeNone = 0x10283190;
483 const TInt32 KOperationModeECB = 0x10283191;
484 const TInt32 KOperationModeCBC = 0x10283192;
485 const TInt32 KOperationModeOFB = 0x10283193;
486 const TInt32 KOperationModeCFB = 0x10283194;
487 const TInt32 KOperationModeCTR = 0x10283195;
492 const TUid KOperationModeNoneUid = {KOperationModeNone};
497 const TUid KOperationModeECBUid = {KOperationModeECB};
502 const TUid KOperationModeCBCUid = {KOperationModeCBC};
507 const TUid KOperationModeOFBUid = {KOperationModeOFB};
512 const TUid KOperationModeCFBUid = {KOperationModeCFB};
517 const TUid KOperationModeCTRUid = {KOperationModeCTR};
520 Definition of the Hmac key parameter Uid value
522 const TInt32 KHmacKeyParameter = 0x102831ba;
523 const TUid KHmacKeyParameterUid={KHmacKeyParameter};
526 Definition of the Symmetric key parameter Uid value
528 const TInt32 KSymmetricKeyParameter = 0x10283196;
529 const TUid KSymmetricKeyParameterUid={KSymmetricKeyParameter};
532 Definition of the Dsa key parameter Uid value
534 const TInt32 KDsaKeyParameterP = 0x10283197;
535 const TInt32 KDsaKeyParameterQ = 0x10283198;
536 const TInt32 KDsaKeyParameterG = 0x10283199;
537 const TInt32 KDsaKeyParameterY = 0x1028319a;
538 const TInt32 KDsaKeyParameterX = 0x1028319b;
539 const TInt32 KDsaKeyGenerationCounter = 0x1028319c;
540 const TInt32 KDsaKeyGenerationSeed = 0x1028319d;
542 const TUid KDsaKeyParameterPUid={KDsaKeyParameterP};
543 const TUid KDsaKeyParameterQUid={KDsaKeyParameterQ};
544 const TUid KDsaKeyParameterGUid={KDsaKeyParameterG};
545 const TUid KDsaKeyParameterYUid={KDsaKeyParameterY};
546 const TUid KDsaKeyParameterXUid={KDsaKeyParameterX};
547 const TUid KDsaKeyGenerationCounterUid={KDsaKeyGenerationCounter};
548 const TUid KDsaKeyGenerationSeedUid={KDsaKeyGenerationSeed};
551 Definition of the Diffie-Hellman parameter Uid value
553 const TInt32 KDhKeyParameterN = 0x1028319e;
554 const TInt32 KDhKeyParameterG = 0x1028319f;
555 const TInt32 KDhKeyParameterX = 0x102831a0;
556 const TInt32 KDhKeyParameterx = 0x102831a1;
558 const TUid KDhKeyParameterNUid = {KDhKeyParameterN};
559 const TUid KDhKeyParameterGUid = {KDhKeyParameterG};
560 const TUid KDhKeyParameterXUid = {KDhKeyParameterX};
561 const TUid KDhKeyParameterxUid = {KDhKeyParameterx};
564 Definition of the RSA cipher parameter Uid value
566 const TInt32 KRsaKeyParameterN = 0x102831a2;
567 const TInt32 KRsaKeyParameterE = 0x102831a3;
568 const TInt32 KRsaKeyParameterD = 0x102831a4;
569 const TInt32 KRsaKeyParameterP = 0x102831a5;
570 const TInt32 KRsaKeyParameterQ = 0x102831a6;
571 const TInt32 KRsaKeyParameterQInv = 0x102831a7;
572 const TInt32 KRsaKeyParameterDP = 0x102831a8;
573 const TInt32 KRsaKeyParameterDQ = 0x102831a9;
575 const TUid KRsaKeyParameterNUid = {KRsaKeyParameterN};
576 const TUid KRsaKeyParameterEUid = {KRsaKeyParameterE};
577 const TUid KRsaKeyParameterDUid = {KRsaKeyParameterD};
578 const TUid KRsaKeyParameterPUid = {KRsaKeyParameterP};
579 const TUid KRsaKeyParameterQUid = {KRsaKeyParameterQ};
580 const TUid KRsaKeyParameterQInvUid = {KRsaKeyParameterQInv};
581 const TUid KRsaKeyParameterDPUid = {KRsaKeyParameterDP};
582 const TUid KRsaKeyParameterDQUid = {KRsaKeyParameterDQ};
585 Definition of the DSA Signature Parameter Uid value
587 const TInt32 KDsaSignatureParameterR = 0x102831aa;
588 const TInt32 KDsaSignatureParameterS = 0x102831ab;
590 const TUid KDsaSignatureParameterRUid = {KDsaSignatureParameterR};
591 const TUid KDsaSignatureParameterSUid = {KDsaSignatureParameterS};
594 Definition of the RSA Signature Parameter Uid value
596 const TInt32 KRsaSignatureParameterS = 0x102831ac;
597 const TUid KRsaSignatureParameterSUid = {KRsaSignatureParameterS};
600 Definition of the key type uid
602 const TInt32 KRsaKeyType = 0x102831ad;
603 const TUid KRsaKeyTypeUid= {KRsaKeyType};
606 Definition of Symmetric and Asymmetric Key Type Uid value
608 const TInt32 KHmacKey = 0x102831bb;
609 const TInt32 KSymmetricKey = 0x102831ae;
610 const TInt32 KDsaPublicKey = 0x102831af;
611 const TInt32 KDsaPrivateKey = 0x102831b0;
612 const TInt32 KRsaPublicKey = 0x102831b1;
613 const TInt32 KRsaPrivateKeyStandard = 0x102831b2;
614 const TInt32 KRsaPrivateKeyCRT = 0x102831b3;
615 const TInt32 KDHPublicKey = 0x102831b4;
616 const TInt32 KDHPrivateKey = 0x102831b5;
617 const TInt32 KDHAgreedKey = 0x102831b6;
619 const TUid KHmacKeyUid={KHmacKey};
620 const TUid KSymmetricKeyUid={KSymmetricKey};
621 const TUid KDsaPublicKeyUid={KDsaPublicKey};
622 const TUid KDsaPrivateKeyUid={KDsaPrivateKey};
623 const TUid KRsaPublicKeyUid={KRsaPublicKey};
624 const TUid KRsaPrivateKeyStandardUid={KRsaPrivateKeyStandard};
625 const TUid KRsaPrivateKeyCRTUid={KRsaPrivateKeyCRT};
626 const TUid KDHPublicKeyUid={KDHPublicKey};
627 const TUid KDHPrivateKeyUid={KDHPrivateKey};
628 const TUid KDHAgreedKeyUid={KDHAgreedKey};
630 const TUid KRC2EffectiveKeyLenBits = { 0x102831bc };
631 const TUid KARC4DiscardBytes = { 0x102831bd };
634 Definition of Key Attribute value
636 const TInt32 KNonEmbeddedKey = 0x102831b7;
637 const TInt32 KExtractableKey = 0x102831b8;
638 const TInt32 KNonExtractableKey = 0x102831b9;
640 const TUid KNonEmbeddedKeyUid={KNonEmbeddedKey};
641 const TUid KExtractableKeyUid={KExtractableKey};
642 const TUid KNonExtractableKeyUid={KNonExtractableKey};
644 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
646 * The UID below is not specific to ECC. This should be used
647 * as a CKey key param, whenever the user of CryptoSPI just has
648 * the handle and not the actual key with him. The SPI plugin
649 * should search for this ID and invoke the right apis for
650 * getting access to keys.
652 const TInt32 KPassedHandleToKey = 0x20025161;
653 const TUid KPassedHandleToKeyUid = {KPassedHandleToKey};
655 #ifdef SYMBIAN_ENABLE_SDP_ECC
657 UIDs related to Ecc (which is Asymmetric Cipher)
659 const TInt32 KAlgorithmCipherEcc = 0x20024482;
660 const TInt32 KAlgorithmSignerEcc = 0x20024483;
661 const TInt32 KAlgorithmVerifierEcc = 0x20024486;
662 const TInt32 KAlgorithmECCKeyPairGenerator = 0x20024487;
664 const TUid KEccCipherUid = {KAlgorithmCipherEcc};
665 const TUid KEccSignerUid = {KAlgorithmSignerEcc};
666 const TUid KEccVerifierUid = {KAlgorithmVerifierEcc};
667 const TUid KEccKeyPairGeneratorUid = {KAlgorithmECCKeyPairGenerator};
670 UIDs related to ECC keys
672 const TInt32 KEccKeyType = 0x20025160;
673 const TInt32 KEccPublicKey = 0x20024484;
674 const TInt32 KEccPrivateKey = 0x20024485;
676 const TUid KEccKeyTypeUid = {KEccKeyType};
677 const TUid KEccPublicKeyUid = {KEccPublicKey};
678 const TUid KEccPrivateKeyUid = {KEccPrivateKey};
681 UIDs related to ECC key params
683 const TInt32 KEccFiniteFieldFP = 0x20025151;
684 const TInt32 KEccFiniteFieldF2M = 0x20025152;
685 const TInt32 KEccKeyGenerationSeed = 0x20025153;
686 const TInt32 KEccKeyParameterP = 0x20025154;
687 const TInt32 KEccKeyParameterA = 0x20025155;
688 const TInt32 KEccKeyParameterB = 0x20025156;
689 const TInt32 KEccKeyParameterG = 0x20025157;
690 const TInt32 KEccKeyParameterN = 0x20025158;
691 const TInt32 KEccKeyParameterH = 0x20025159;
692 const TInt32 KEccKeyParameterM = 0x2002515A;
693 const TInt32 KEccKeyParameterF = 0x2002515B;
694 const TInt32 KEccKeyParameterD = 0x2002515C;
695 const TInt32 KEccKeyParameterQ = 0x2002515D;
696 const TInt32 KEccSignatureParameterR = 0x2002515E;
697 const TInt32 KEccSignatureParameterS = 0x2002515F;
699 const TUid KEccFiniteFieldFPUid = {KEccFiniteFieldFP};
700 const TUid KEccFiniteFieldF2MUid = {KEccFiniteFieldF2M};
701 const TUid KEccKeyGenerationSeedUid = {KEccKeyGenerationSeed};
702 const TUid KEccKeyParameterPUid = {KEccKeyParameterP};
703 const TUid KEccKeyParameterAUid = {KEccKeyParameterA};
704 const TUid KEccKeyParameterBUid = {KEccKeyParameterB};
705 const TUid KEccKeyParameterGUid = {KEccKeyParameterG};
706 const TUid KEccKeyParameterNUid = {KEccKeyParameterN};
707 const TUid KEccKeyParameterHUid = {KEccKeyParameterH};
708 const TUid KEccKeyParameterMUid = {KEccKeyParameterM};
709 const TUid KEccKeyParameterFUid = {KEccKeyParameterF};
710 const TUid KEccKeyParameterDUid = {KEccKeyParameterD};
711 const TUid KEccKeyParameterQUid = {KEccKeyParameterQ};
712 const TUid KEccSignatureParameterRUid = {KEccSignatureParameterR};
713 const TUid KEccSignatureParameterSUid = {KEccSignatureParameterS};
714 #endif //SYMBIAN_ENABLE_SDP_ECC
715 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
719 #endif //__CRYPTOAPI_CRYPTOSPIDEF_H__