303 {
305 byte[]
array =
new byte[num];
307 global::Interop.NCrypt.ErrorCode
errorCode = global::Interop.NCrypt.ErrorCode.ERROR_SUCCESS;
308 for (
int i = 0;
i <= 1;
i++)
309 {
311 if (
errorCode != global::Interop.NCrypt.ErrorCode.STATUS_UNSUCCESSFUL)
312 {
313 break;
314 }
315 }
316 if (
errorCode == global::Interop.NCrypt.ErrorCode.NTE_BUFFER_TOO_SMALL)
317 {
318 CryptographicOperations.ZeroMemory(
array);
320 for (
int j = 0;
j <= 1;
j++)
321 {
323 if (
errorCode != global::Interop.NCrypt.ErrorCode.STATUS_UNSUCCESSFUL)
324 {
325 break;
326 }
327 }
328 }
330 {
331 throw errorCode.ToCryptographicException();
332 }
334 {
336 CryptographicOperations.ZeroMemory(
array);
338 }
340 }
unsafe byte[] EncryptOrDecrypt(byte[] data, RSAEncryptionPadding padding, bool encrypt)