views:

28

answers:

0
private readonly string KeyContainerName = "MyKeyContainer";

public void GenerateKeyPair()
        {

            Debug.WriteLine("Generating Key Pair");

            CspParameters cp = new CspParameters();           

            cp.KeyContainerName = KeyContainerName;

            cp.Flags = CspProviderFlags.UseDefaultKeyContainer;

            RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024,cp);

            rsaProvider.PersistKeyInCsp = true;

            byte[] pubkey = rsaProvider.ExportCspBlob(false);

            string PublicKey = Convert.ToBase64String(pubkey);

            if (!x.checkSettingExists("PublicKey"))
                x.addSetting("PublicKey", PublicKey);
            else
                x.changeSetting("PublicKey", PublicKey);


        }

x is a XML Utility class that i created which will save the the Public Key to an XML file.

However my problem is that even if i change the Key Container name, the public key generated is ALWAYS the same... I am under the impression that changing the key container would generate a fresh pair of private/public key pair.

Note that i am using Dot Net Compact Framework 3.5 :)

What am i doing wrong? Any insight to it would be highly appreciated :)

To make it even worse, i tried with a physical device which actually generates the same public key... I really don't know how that is possible...

related questions