private SafeNCryptKeyHandle GetDuplicatedKeyHandle()
{
int keySize = KeySize;
if (_lastKeySize != keySize)
{
if (_keyHandle != null)
{
_keyHandle.Dispose();
}
const string BCRYPT_DSA_ALGORITHM = "DSA";
_keyHandle = CngKeyLite.GenerateNewExportableKey(BCRYPT_DSA_ALGORITHM, keySize);
_lastKeySize = keySize;
}
return new DuplicateSafeNCryptKeyHandle(_keyHandle);
}