UIDs

Symmetric cipher algorithm UIDs

UID Description Value RFC standard

KDesUid

DES (Data Encryption Standard) algorithm

0x10283179

RFC 2406

K3DesUid

3DES (Triple Data Encryption Standard) algorithm

0x1028317a

RFC 2405

RFC 2420

KRc2Uid

RC2 algorithm

0x1028317b

RFC 2268

KArc4Uid

ARC4 ('alleged' RC4) algorithm (strong random number generator)

0x1028317c

RFC 2144

KAesUid

AES (Advanced Encryption Standard)

0x1028317d

RFC 3268

KMisty1Uid

Misty1 algorithm

0x102831be

RFC 2994

KMisty2Uid

Misty2 algorithm

0x102831bf

 

KKasumiUid

Kasumi algorithm

0x102831c0

RFC 3711

The symmetric cipher algorithm UIDs are used by the following CryptoSPI APIs:

  • CSymmetricCipherFactory::CreateSymmetricCipherL()

  • CRuleSelector::CreateSymmetricCipherL()

  • CCryptoPluginEntry::CreateSymmetricCipherL()

  • CAsymmetricCipherFactory::CreateAsymmetricCipherL()

  • CRuleSelector::CreateAsymmetricCipherL()

  • CCryptoPluginEntry::CreateAsymmetricCipherL()

Asymmetric cipher algorithm UIDs

UID Description Value RFC standard

KRsaCipherUid

RSA

0x1028317e

RFC 2437: PKCS #1 : RSA Cryptography Specifications Version 2.0

RFC 2313 - PKCS #1 : RSA Encryption Version 1.5

The asymmetric cipher algorithm UIDs are used by the following CryptoSPI APIs:

  • CAsymmetricCipherFactory::CreateAsymmetricCipherL()

  • CRuleSelector::CreateAsymmetricCipherL()

  • CCryptoPluginEntry::CreateAsymmetricCipherL()

  • CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()

  • CRuleSelector::CreateAsyncAsymmetricCipherL()

Signer algorithm UIDs

UID Description Value RFC standard

KRsaSignerUid

RSA Signer algorithm

0x1028317f

RFC 4853

KDsaSignerUid

DSA Signer algorithm

0x10283180

RFC 3279

The signer algorithm UIDs are used by the following CryptoSPI APIs:

  • CSignatureFactory::CreateSignerL()

  • CRuleSelector::CreateSignerL()

  • CSignatureFactory::CreateAsyncSignerL()

  • CRuleSelector::CreateAsyncSignerL()

Verifier algorithm UIDs

UID Description Value RFC standard

KRsaVerifierUid

RSA Verifier algorithm

0x10283181

RFC 4853

KDsaVerifierUid

DSA Verifier algorithm

0x10283182

RFC 3279

The verifier algorithm UIDs are used by the following CryptoSPI APIs:

  • CSignatureFactory::CreateVerifierL()

  • MPluginSelector::CreateVerifierL()

  • CSignatureFactory::CreateAsyncVerifierL()

  • CRuleSelector::CreateAsyncVerifierL()

Key Agreement algorithm UIDs

UID Description Value RFC standard

KDHAgreementUid

Diffie-Hellman Key Agreement algorithm

0x10283183

RFC 2631

The Key Agreement algorithm UIDs are used by the following CryptoSPI APIs:

  • CKeyAgreementFactory::CreateKeyAgreementL()

  • CRuleSelector::CreateKeyAgreementL()

  • CCryptoPluginEntry::CreateKeyAgreementL()

  • CKeyAgreementFactory::CreateAsyncKeyAgreementL()

  • CRuleSelector::CreateAsyncKeyAgreementL()

Key Pair Generator algorithm UIDs

UID Description Value RFC standard

KDHKeyPairGeneratorUid

DH Key Pair Generator algorithm

0x10283184

RFC 2539

KRSAKeyPairGeneratorUid

RSA Key Pair Generator algorithm

0x10283185

RFC 4055

KDSAKeyPairGeneratorUid

DSA Key Pair Generator algorithm

0x10283186

 

The Key Pair Generator algorithm UIDs are used by the following CryptoSPI APIs:

  • CKeyPairGeneratorFactory::CreateAsyncKeyPairGeneratorL()

  • CRuleSelector::CreateAsyncKeyPairGeneratorL()

Padding modes

UID Description Value

KPaddingModeNoneUid

Padding Mode None Uid

0x10283188

KPaddingModeSSLv3Uid

SSLv3 Padding Mode Uid

0x10283189

KPaddingModePKCS7Uid

PKCS7 Padding Mode Uid

0x1028318a

KPaddingModePkcs1_v1_5_EncryptionUid

Pkcs1 v1.5 Encryption Padding mode Uid

0x1028318b

KPaddingModePkcs1_v1_5_SignatureUid

Pkcs1 v1.5 Signature Padding mode Uid

0x1028318c

The padding modes are used by the following CryptoSPI APIs:

  • CAsymmetricCipherFactory::CreateAsymmetricCipherL()

  • CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()

Cryptography modes

UID Description Value

KCryptoModeEncryptUid

Crypto Encrypt Mode Uid

0x1028318d

KCryptoModeDecryptUid

Crypto Decrypt Mode Uid

0x1028318e

KCryptoModeNoneUid

Crypto None Mode Uid

0x1028318f

The cryptography modes are used by the following CryptoSPI APIs:

  • CAsymmetricCipherFactory::CreateAsymmetricCipherL()

  • CAsymmetricCipherFactory::CreateAsyncAsymmetricCipherL()

Hash algorithm UIDs

UID Description Value RFC standard

KMd2Uid

MD2, Message-Digest Algorithm

0x10283173

RFC 1319

KMd4Uid

MD4, Message-Digest Algorithm (Output: 128 bit message digest)

0x2000B341

RFC 1320

KMd5Uid

MD5 ,Message-Digest Algorithm (output:128-bit "fingerprint" or "message digest)

0x10283174

RFC 1321

KSha1Uid

Secure Hash Algorithm(output: 160-bit message digest)

0x10283175

FIPS 180-1 and RFC 3174

KSha224Uid

Sha224 algorithm

0x2000E258

FIPS 180-2 (with change notice) , RFC3874 and FIPS 180-3

KSha256Uid

Sha256 algorithm

0x2000E259

FIPS 180-2 and RFC 4634

KSha384Uid

Sha384 algorithm

0x2000E25A

FIPS 180-2 and RFC 4634

KSha512Uid

Sha512 algorithm

0x2000E25B

FIPS 180-2 and RFC 4634

The hash algorithm UIDs are used by the following APIs:

  • CryptoSpi::CHashFactory::CreateHashL()

  • CryptoSpi::CRuleSelector::CreateHashL()

  • CryptoSpi::CCryptoPluginEntry::CreateHashL()

  • CryptoSpi::CHashFactory::CreateAsyncHashL()

  • CryptoSpi::CRuleSelector::CreateAsyncHashL()

Random algorithm UIDs

UID Description Value

KRandomUid

Random algorithm UID

0x10283178

The random algorithm UIDs are used by the following APIs:

  • CryptoSpi::CRandomFactory::CreateRandomL()

  • CryptoSpi::CRuleSelector::CreateRandomL()

  • CryptoSpi::CRandomFactory::CreateAsyncRandomL()

  • CryptoSpi::CRuleSelector::CreateAsyncRandomL()

Symmetric key algorithm UIDs

UID Description Value

KDesUid

Des algorithm UID

0x10283179

K3DesUid

3Des algorithm UID

0x1028317a

KRc2Uid

RC2 algorithm UID

0x1028317b

KArc4Uid

ARC4 algorithm UID

0x1028317c

KAesUid

AES algorithm UID

0x1028317d

KMisty1Uid

Misty1 algorithm UID

0x102831be

KMisty2Uid

Misty2 algorithm UID

0x102831bf

KKasumiUid

Kasumi algorithm UID

0x102831c0

The symmetric key algorithm UIDs are used by the following API:

  • CryptoSpi::CSymmetricCipher::CSymmetricCipher()

Asymmetric key algorithm UIDs

UID Description Value

KRsaCipherUid

RSA Cipher algorithm UID

0x1028317e

KRsaSignerUid

RSA Signer algorithm UID

0x1028317f

KRsaVerifierUid

RSA Verifier algorithm UID

0x10283181

KRSAKeyPairGeneratorUid

RSA Key Pair Generator algorithm UID

0x10283185

KDsaSignerUid

DSA Signer algorithm UID

0x10283180

KDsaVerifierUid

DSA Verifier algorithm UID

0x10283182

KDSAKeyPairGeneratorUid

DSA Key Pair Generator algorithm UID

0x10283186

KDHAgreementUid

DH Agreement algorithm UID

0x10283183

KDHKeyPairGeneratorUid

DH Key Pair Generator algorithm UID

0x10283184

KEccCipherUid

ECC Key Cipher algorithm UID

0x20024482

KEccSignerUid

ECC Key Signer algorithm UID

0x20024483

KEccVerifierUid

ECC Key Verifier algorithm UID

0x20024486

KEccKeyPairGeneratorUid

ECC Key Pair Generator algorithm UID

0x20024487

Note: The ECC key UIDs are enabled only if the macros SYMBIAN_ENABLE_SDP_ECC and SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT are enabled.

The asymmetric key algorithm UIDs are used by the following API:

  • CryptoSpi::CAsymmetricCipher::CAsymmetricCipher()

Other UIDs

UID Description Value

KPassedHandleToKeyUid

Use this UID as CKey key parameter, whenever the CryptoSPI user has just the handle and not the actual key. The CryptoSPI plug-in searches for this ID and invokes the appropriate APIs for providing access to the key.

Note: This UID is enabled only if the SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT macro is enabled.

0x20025161

Example usage of KPassedHandleToKeyUid

The following sequence of steps explains the use of KPassedHandleToKeyUid in the key parameter, which, along with the key property creates a CKey object. This CKey object is one of the parameters in the creation of a signer object, which can be used for performing signing operations.

  1. Define the key property.

    Create a CCryptoParams object for the key parameter. Add the key handle and KPassedHandleToKeyUid to the CCryptoParams object by using CCryptoParams::AddL() .

  2. Create a CKey object by passing instance of the key property and the CCryptoParams object containing KPassedHandleToKeyUid .

  3. Create a signer object by using the CKey object as one of the parameters. This signer object can be used for performing signing operations.

The following code snippet demonstrates the use of KPassedHandleToKeyUid :

       
        
       
       .
.
.
// Define the key property
TKeyProperty keyProperty;
keyProperty.iAlgorithmUid = KRsaSignerUid;

// Create the key parameter object
CCryptoParams* keyParameters = CCryptoParams::NewLC();

// iHandle is of type TCTTokenObjectHandle. It contains handle to the key
keyParameters->AddL(iHandle.iObjectId, KPassedHandleToKeyUid);

// Create a CKey object
CKey* newKey = CKey::NewL(keyProperty, *keyParameters);

// Create a signer plug-in object
CSigner * implsig = NULL;    

// Create the signer object
CSignatureFactory::CreateSignerL(implsig, KRsaSignerUid, *newKey, KPaddingModePkcs1_v1_5_SignatureUid, NULL);
.
.
.
      

Operation modes

UID Description Value

KOperationModeNoneUid

None Mode UID

0x10283190

KOperationModeECBUid

ECB Mode UID

0x10283191

KOperationModeCBCUid

CBC Mode UID

0x10283192

KOperationModeOFBUid

OFB Mode UID

0x10283193

KOperationModeCFBUid

CFB Mode UID

0x10283194

KOperationModeCTRUid

CTR Mode UID

0x10283195

The operation modes are used by the following APIs:

  • CryptoSpi::CHashFactory::CreateHashL()

  • CryptoSpi::CHashFactory::CreateAsyncHashL()