Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Open() [1/4]

static CngKey System.Security.Cryptography.CngKey.Open ( SafeNCryptKeyHandle keyHandle,
CngKeyHandleOpenOptions keyHandleOpenOptions )
inlinestatic

Definition at line 829 of file CngKey.cs.

830 {
831 if (keyHandle == null)
832 {
833 throw new ArgumentNullException("keyHandle");
834 }
835 if (keyHandle.IsClosed || keyHandle.IsInvalid)
836 {
838 }
839 SafeNCryptKeyHandle keyHandle2 = keyHandle.Duplicate();
840 SafeNCryptProviderHandle safeNCryptProviderHandle = new SafeNCryptProviderHandle();
841 IntPtr propertyAsIntPtr = keyHandle.GetPropertyAsIntPtr("Provider Handle", CngPropertyOptions.None);
842 safeNCryptProviderHandle.SetHandleValue(propertyAsIntPtr);
843 CngKey cngKey = null;
844 try
845 {
846 cngKey = new CngKey(safeNCryptProviderHandle, keyHandle2);
847 bool flag = (keyHandleOpenOptions & CngKeyHandleOpenOptions.EphemeralKey) == CngKeyHandleOpenOptions.EphemeralKey;
848 if (!cngKey.IsEphemeral && flag)
849 {
850 cngKey.IsEphemeral = true;
851 }
852 else if (cngKey.IsEphemeral && !flag)
853 {
855 }
856 }
857 catch
858 {
859 cngKey?.Dispose();
860 throw;
861 }
862 return cngKey;
863 }
static string Cryptography_OpenEphemeralKeyHandleWithoutEphemeralFlag
Definition SR.cs:90
static string Cryptography_OpenInvalidHandle
Definition SR.cs:92
Definition SR.cs:7
CngKey(SafeNCryptProviderHandle providerHandle, SafeNCryptKeyHandle keyHandle)
Definition CngKey.cs:209

References System.Security.Cryptography.CngKey.CngKey(), System.SR.Cryptography_OpenEphemeralKeyHandleWithoutEphemeralFlag, System.SR.Cryptography_OpenInvalidHandle, System.Security.Cryptography.CngKey.Dispose(), Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle.Duplicate(), System.Runtime.InteropServices.SafeHandle.IsClosed, System.Security.Cryptography.CngKey.IsEphemeral, Microsoft.Win32.SafeHandles.SafeNCryptHandle.IsInvalid, and Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle.SetHandleValue().