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