crypto/weakcrypto/source/pbe/pbesymmetricfactory.cpp
branchRCL_3
changeset 62 a71299154b21
parent 61 641f389e9157
child 63 94225563cd41
--- a/crypto/weakcrypto/source/pbe/pbesymmetricfactory.cpp	Tue Aug 31 17:00:08 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2002-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: 
-*
-*/
-
-
-#include <symmetric.h>
-#include "pbesymmetricfactory.h"
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-
-/** OpenSSL PKCS8 Effective Key Length Compatibility.*/
-const TUint KPkcs8CompatibilityBits = 128;
-
-/** PKCS12 PBE Effective Key Length Compatibility.*/
-const TUint KPkcs12CompatibilityBits = 40;
-
-#endif
-
-TUint PBE::GetBlockBytes(TPBECipher aCipher)
-	{
-	switch(aCipher)
-		{
-		case ECipherAES_CBC_128:
-		case ECipherAES_CBC_192:
-		case ECipherAES_CBC_256:
-			return KAESBlockBytes;
-		case ECipherDES_CBC:
-		case ECipher3DES_CBC:
-
-		case ECipher2Key3DES_CBC: 
-
-			return KDESBlockBytes;
-		case ECipherRC2_CBC_128_16:
-		case ECipherRC2_CBC_40_16:
-		case ECipherRC2_CBC_128:
-		case ECipherRC2_CBC_40:
-
-		case ECipherRC2_CBC_40_5:
-
-			return KRC2BlockBytes;
-
-		case ECipherARC4_128:
-		case ECipherARC4_40:
-			return 1; // 1 byte block for stream cipher
-
-		default:
-			User::Panic(_L("Invalid PBE cipher"), 1);
-		}
-	return (KErrNone); //	For the compiler
-	}
-
-TUint PBE::GetKeyBytes(TPBECipher aCipher)
-	{
-	switch(aCipher)
-		{
-		case ECipherAES_CBC_128:
-			return KAESKeyBytes128;
-		case ECipherAES_CBC_192:
-			return KAESKeyBytes192;
-		case ECipherAES_CBC_256:
-			return KAESKeyBytes256;
-		case ECipherDES_CBC:
-			return KDESKeyBytes;
-		case ECipher3DES_CBC:
-			return K3DESKeyBytes;
-
-		case ECipher2Key3DES_CBC:
-			return K2Key3DESKeyBytes;
-
- 		case ECipherRC2_CBC_128:
- 		case ECipherRC2_CBC_128_16:
-			return KRC2KeyBytes128;
-		case ECipherRC2_CBC_40:
-		case ECipherRC2_CBC_40_16:
-
-		case ECipherRC2_CBC_40_5:
-
-			return KRC2KeyBytes40;
-
-		case ECipherARC4_128:
-			return KRC4KeyBytes128;
-		case ECipherARC4_40:	
-			return KRC4KeyBytes40;
-
-		default:
-			User::Panic(_L("Invalid PBE cipher"), 1);
-		}
-	return (KErrNone);	//	For the compiler
-	}
-
-CSymmetricCipher* PBE::MakeEncryptorL(TPBECipher aCipher, const TDesC8& aKey, 
-	const TDesC8& aIV)
-	{
-	CSymmetricCipher* cipher = 0;	
-	CBlockTransformation* block = 0;
-	switch(aCipher)
-		{
-
-		// stream cipher
-		case ECipherARC4_40:
-		case ECipherARC4_128:
-			cipher = CARC4::NewL(aKey, 0);
-			break;	
-
-		// block cipher	
-		case ECipherAES_CBC_128:
-		case ECipherAES_CBC_192:
-		case ECipherAES_CBC_256:
-			block = CAESEncryptor::NewLC(aKey);
-			break;
-
-		case ECipherDES_CBC:
-			block = CDESEncryptor::NewLC(aKey);
-			break;
-			
-		case ECipher3DES_CBC:		
-			block = C3DESEncryptor::NewLC(aKey);
-			break;
-	
-		case ECipher2Key3DES_CBC:
-			{
-			// Construct 3key from 2 key ( copy first key to 3rd key ) each key 8 bytes
-			TBuf8<K3DESKeyBytes>  encryptKey(aKey);			
-			encryptKey.Append(aKey.Ptr(),KDESKeyBytes);
-			block = C3DESEncryptor::NewLC(encryptKey);			
-			break;
-			}
-
-		case ECipherRC2_CBC_40:
-		case ECipherRC2_CBC_128:		
-			block = CRC2Encryptor::NewLC(aKey);
-			break;
-
-		case ECipherRC2_CBC_40_16:
-		case ECipherRC2_CBC_128_16:
-			block = CRC2Encryptor::NewLC(aKey, KPkcs8CompatibilityBits);
-			break;
-
-		case ECipherRC2_CBC_40_5:
-			block = CRC2Encryptor::NewLC(aKey, KPkcs12CompatibilityBits);
-			break;	
-
-		default:
-			User::Panic(_L("Invalid PBE encryptor"), 1);
-		}
-
-	// if aCipher is not stream cipher, create block cipher object
-	if(aCipher != ECipherARC4_40 && aCipher != ECipherARC4_128)
-		{			
-		block = CModeCBCEncryptor::NewL(block, aIV);
-		CleanupStack::Pop(); //1st block owned by 2nd
-		CleanupStack::PushL(block);//2nd block
-		CPadding* padding = CPaddingSSLv3::NewLC(GetBlockBytes(aCipher));
-		cipher = CBufferedEncryptor::NewL(block, padding);
-		CleanupStack::Pop(padding); //owned by cipher
-		CleanupStack::Pop(block); //owned by cipher
-		}
-
-	return cipher;
-	}
-
-
-CSymmetricCipher* PBE::MakeDecryptorL(TPBECipher aCipher, const TDesC8& aKey, 
-	const TDesC8& aIV)
-	{
-	CSymmetricCipher* cipher = 0;
-	CBlockTransformation* block = 0;
-	switch(aCipher)
-		{
-		// stream cipher
-		case ECipherARC4_40:
-		case ECipherARC4_128:
-			cipher = CARC4::NewL(aKey, 0);
-			break;	
-
-		// block cipher	
-		case ECipherAES_CBC_128:
-		case ECipherAES_CBC_192:
-		case ECipherAES_CBC_256:
-			block = CAESDecryptor::NewLC(aKey);
-			break;
-
-		case ECipherDES_CBC:
-			block = CDESDecryptor::NewLC(aKey);
-			break;
-			
-		case ECipher3DES_CBC:		
-			block = C3DESDecryptor::NewLC(aKey);
-			break;
-
-		case ECipher2Key3DES_CBC:
-			{
-			// Construct 3key from 2 key ( copy first key to 3rd key ) each key 8 bytes
-			TBuf8<K3DESKeyBytes>  encryptKey(aKey);			
-			encryptKey.Append(aKey.Ptr(),KDESKeyBytes);
-			block = C3DESDecryptor::NewLC(encryptKey);			
-			break;
-			}
-
-		case ECipherRC2_CBC_40:
-		case ECipherRC2_CBC_128:
-		  	block = CRC2Decryptor::NewLC(aKey);
-			break;
-			
-		case ECipherRC2_CBC_40_16:
-		case ECipherRC2_CBC_128_16:
-		  	block = CRC2Decryptor::NewLC(aKey, KPkcs8CompatibilityBits);
-			break;
-
-		case ECipherRC2_CBC_40_5:
-			block = CRC2Decryptor::NewLC(aKey, KPkcs12CompatibilityBits);
-			break;	
-
-		default:
-			User::Panic(_L("Invalid PBE decryptor"), 1);
-		}
-
-	// if aCipher is not stream cipher, create block cipher object
-	if(aCipher != ECipherARC4_40 && aCipher != ECipherARC4_128)
-		{	
-		block = CModeCBCDecryptor::NewL(block, aIV);
-		CleanupStack::Pop(); //1st block owned by 2nd
-		CleanupStack::PushL(block);//2nd block
-
-		CPadding* padding = CPaddingSSLv3::NewLC(GetBlockBytes(aCipher));
-		cipher = CBufferedDecryptor::NewL(block, padding);
-		CleanupStack::Pop(padding); //owned by cipher
-		CleanupStack::Pop(block); //owned by cipher
-		}
-
-	return cipher;
-	}