المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : DESCryptoServiceProvider - key size (public key from mykeys.snk not compatible)



C# Programming
05-24-2009, 09:30 AM
hello

Having trouble with DESCryptoServiceProvider - specifically, key size of public key from extracted from "mykeys.snk" (using sn.exe, byte[160]) not compatible with DESCryptoServiceProvider which is expecting byte[24].

Here's how I extract public key from snk file:

FileStream oKeyPairFileStream = File.OpenRead("mykeys.snk");
System.Reflection.StrongNameKeyPair oKeyPairFile = new StrongNameKeyPair(oKeyPairFileStream);
byte[] btPublicKey = oKeyPairFile.PublicKey;
return btPublicKey;


Here's how I do encrypt:

byte[] btGeneratedKey = null;
tDESalg.GenerateKey();
btGeneratedKey = tDESalg.Key;
tDESalg.Key = btKey; // NOTE: Could have used "tDESalg.GenerateKey()" Instead. But I am trying to use public key from snk file instead!

tDESalg.Mode = CipherMode.ECB;
tDESalg.Padding = PaddingMode.PKCS7;

CryptoStream cStream = new CryptoStream(oMemStream,
new TripleDESCryptoServiceProvider().
CreateEncryptor(btKey, tDESalg.IV),
CryptoStreamMode.Write);


This would give error message:

"Specified key is not a valid size for this algorithm."} System.Exception {System.Security.Cryptography.CryptographicException


I got a feeling you can't use key from snk file to encrypt by way of DESCryptoServiceProvider, am I right?

Thanks

dev