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
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