public string GetPublicKey(uint KeyID)
{
if (!_keys.Keys.Contains(KeyID))
throw new ArgumentException(string.Format("Key with this ID does not exist: {0}", KeyID));
if (_keys[KeyID] == null)
return null;
using (var csp = new RSACryptoServiceProvider(new CspParameters { Flags = CspProviderFlags.UseMachineKeyStore }))
{
csp.ImportCspBlob(_keys[KeyID].key);
byte[] pubKey = csp.ExportCspBlob(false);
KeyData pubKeyData = new KeyData(KeyID, pubKey,_keys[KeyID].area);
return pubKeyData.ToString();
}
}