static void Main(string[] args) { CspProviderFlags flag = CspProviderFlags.UseMachineKeyStore; if (args.Length >= 1) { if (args[0].EndsWith(".pfx", StringComparison.OrdinalIgnoreCase) == true) { Console.WriteLine(GetKeyContainerName(args[0])); return; } flag = (CspProviderFlags)Enum.Parse(typeof(CspProviderFlags), args[0]); } foreach (var kc in KeyUtilities.EnumerateKeyContainers("Microsoft Strong Cryptographic Provider")) { CspParameters cspParams = new CspParameters(); cspParams.KeyContainerName = kc; cspParams.Flags = flag; using (RSACryptoServiceProvider prov = new RSACryptoServiceProvider(cspParams)) { if (prov.CspKeyContainerInfo.Exportable) { var blob = prov.ExportCspBlob(true); StrongNameKeyPair kp = new StrongNameKeyPair(prov.ExportCspBlob(false)); Console.WriteLine(kc + " pk length:" + kp.PublicKey.Length); } } Console.WriteLine(); } }