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

◆ OpenCSP()

static int Internal.NativeCrypto.CapiHelper.OpenCSP ( CspParameters cspParameters,
uint flags,
out SafeProvHandle safeProvHandle )
inlinestatic

Definition at line 528 of file CapiHelper.cs.

529 {
530 string text = null;
531 if (cspParameters == null)
532 {
533 throw new ArgumentException(System.SR.Format(System.SR.CspParameter_invalid, "cspParameters"));
534 }
535 int providerType = cspParameters.ProviderType;
536 string providerName = ((cspParameters.ProviderName != null) ? cspParameters.ProviderName : (cspParameters.ProviderName = GetDefaultProvider(providerType)));
537 int flags2 = (int)cspParameters.Flags;
538 if (!IsFlagBitSet((uint)flags2, 2u) && cspParameters.KeyContainerName != null)
539 {
540 text = cspParameters.KeyContainerName;
541 }
542 flags |= MapCspProviderFlags((int)cspParameters.Flags);
543 SafeProvHandle safeProvHandle2;
544 int num = AcquireCryptContext(out safeProvHandle2, text, providerName, providerType, flags);
545 if (num != 0)
546 {
547 safeProvHandle2.Dispose();
548 safeProvHandle = SafeProvHandle.InvalidHandle;
549 return num;
550 }
551 safeProvHandle2.ContainerName = text;
552 safeProvHandle2.ProviderName = providerName;
553 safeProvHandle2.Types = providerType;
554 safeProvHandle2.Flags = flags;
555 if (IsFlagBitSet(flags, 4026531840u))
556 {
557 safeProvHandle2.PersistKeyInCsp = false;
558 }
559 safeProvHandle = safeProvHandle2;
560 return 0;
561 }
static bool IsFlagBitSet(uint dwImp, uint flag)
static int AcquireCryptContext(out SafeProvHandle safeProvHandle, string keyContainer, string providerName, int providerType, uint flags)
static uint MapCspProviderFlags(int flags)
static string GetDefaultProvider(int dwType)
static string CspParameter_invalid
Definition SR.cs:76
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
Definition SR.cs:7
override void Dispose(bool disposing)

References Internal.NativeCrypto.CapiHelper.AcquireCryptContext(), System.SR.CspParameter_invalid, System.Security.Cryptography.SafeProvHandle.Dispose(), System.Security.Cryptography.CspParameters.Flags, System.SR.Format(), Internal.NativeCrypto.CapiHelper.GetDefaultProvider(), System.Security.Cryptography.SafeProvHandle.InvalidHandle, Internal.NativeCrypto.CapiHelper.IsFlagBitSet(), System.Security.Cryptography.CspParameters.KeyContainerName, Internal.NativeCrypto.CapiHelper.MapCspProviderFlags(), System.Security.Cryptography.CspParameters.ProviderName, System.Security.Cryptography.CspParameters.ProviderType, and System.text.

Referenced by Internal.NativeCrypto.CapiHelper.AcquireCsp(), Internal.NativeCrypto.CapiHelper.CreateCSP(), Internal.NativeCrypto.CapiHelper.CreateProvHandle(), System.Security.Cryptography.CspKeyContainerInfo.ReadDeviceParameterVerifyContext(), and System.Security.Cryptography.CspKeyContainerInfo.ReadKeyParameterSilent().