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

◆ SaveCspParameters()

static CspParameters Internal.NativeCrypto.CapiHelper.SaveCspParameters ( CspAlgorithmType keyType,
CspParameters userParameters,
CspProviderFlags defaultFlags,
out bool randomKeyContainer )
inlinestaticpackage

Definition at line 829 of file CapiHelper.cs.

830 {
831 CspParameters cspParameters;
832 if (userParameters == null)
833 {
834 cspParameters = new CspParameters((keyType == CspAlgorithmType.Dss) ? 13 : 24, null, null, defaultFlags);
835 }
836 else
837 {
838 ValidateCspFlags(userParameters.Flags);
839 cspParameters = new CspParameters(userParameters);
840 }
841 if (cspParameters.KeyNumber == -1)
842 {
843 cspParameters.KeyNumber = ((keyType != CspAlgorithmType.Dss) ? 1 : 2);
844 }
845 else if (cspParameters.KeyNumber == 8704 || cspParameters.KeyNumber == 9216)
846 {
847 cspParameters.KeyNumber = 2;
848 }
849 else if (cspParameters.KeyNumber == 41984)
850 {
851 cspParameters.KeyNumber = 1;
852 }
853 randomKeyContainer = IsFlagBitSet((uint)cspParameters.Flags, 128u);
854 if (cspParameters.KeyContainerName == null && !IsFlagBitSet((uint)cspParameters.Flags, 2u))
855 {
856 cspParameters.Flags |= CspProviderFlags.CreateEphemeralKey;
857 randomKeyContainer = true;
858 }
859 return cspParameters;
860 }
static bool IsFlagBitSet(uint dwImp, uint flag)
static void ValidateCspFlags(CspProviderFlags flags)

References System.Security.Cryptography.CspParameters.Flags, Internal.NativeCrypto.CapiHelper.IsFlagBitSet(), System.Security.Cryptography.CspParameters.KeyContainerName, System.Security.Cryptography.CspParameters.KeyNumber, and Internal.NativeCrypto.CapiHelper.ValidateCspFlags().

Referenced by System.Security.Cryptography.DSACryptoServiceProvider.DSACryptoServiceProvider(), and System.Security.Cryptography.RSACryptoServiceProvider.RSACryptoServiceProvider().