address feedback
authorEirik Tsarpalis <eirik.tsarpalis@gmail.com>
Tue, 11 Feb 2020 17:07:52 +0000 (17:07 +0000)
committerEirik Tsarpalis <eirik.tsarpalis@gmail.com>
Fri, 14 Feb 2020 15:32:54 +0000 (15:32 +0000)
src/libraries/Common/src/Internal/Cryptography/HashProviderCng.cs
src/libraries/Common/src/Interop/Windows/BCrypt/BCryptAlgorithmCache.cs
src/libraries/Common/src/Interop/Windows/BCrypt/Interop.BCryptOpenAlgorithmProvider.cs
src/libraries/System.Security.Cryptography.Cng/src/System/Security/Cryptography/CngKeyCreationParameters.cs

index 319629c..2864461 100644 (file)
@@ -27,7 +27,7 @@ namespace Internal.Cryptography
         {
         }
 
-        internal HashProviderCng(string? hashAlgId, ReadOnlySpan<byte> key, bool isHmac)
+        internal HashProviderCng(string hashAlgId, ReadOnlySpan<byte> key, bool isHmac)
         {
             BCryptOpenAlgorithmProviderFlags dwFlags = BCryptOpenAlgorithmProviderFlags.None;
             if (isHmac)
index fa8e593..1e6b18b 100644 (file)
@@ -19,7 +19,7 @@ internal partial class Interop
             /// <summary>
             ///     Return a SafeBCryptAlgorithmHandle of the desired algorithm and flags. This is a shared handle so do not dispose it!
             /// </summary>
-            public static SafeBCryptAlgorithmHandle GetCachedBCryptAlgorithmHandle(string? hashAlgorithmId, BCryptOpenAlgorithmProviderFlags flags)
+            public static SafeBCryptAlgorithmHandle GetCachedBCryptAlgorithmHandle(string hashAlgorithmId, BCryptOpenAlgorithmProviderFlags flags)
             {
                 // There aren't that many hash algorithms around so rather than use a LowLevelDictionary and guard it with a lock,
                 // we'll use a simple list. To avoid locking, we'll recreate the entire list each time an entry is added and replace it atomically.
@@ -54,7 +54,7 @@ internal partial class Interop
 
             private struct Entry
             {
-                public Entry(string? hashAlgorithmId, BCryptOpenAlgorithmProviderFlags flags, SafeBCryptAlgorithmHandle handle)
+                public Entry(string hashAlgorithmId, BCryptOpenAlgorithmProviderFlags flags, SafeBCryptAlgorithmHandle handle)
                     : this()
                 {
                     HashAlgorithmId = hashAlgorithmId;
@@ -62,7 +62,7 @@ internal partial class Interop
                     Handle = handle;
                 }
 
-                public string? HashAlgorithmId { get; private set; }
+                public string HashAlgorithmId { get; private set; }
                 public BCryptOpenAlgorithmProviderFlags Flags { get; private set; }
                 public SafeBCryptAlgorithmHandle Handle { get; private set; }
             }
index d4a52fd..1d1372b 100644 (file)
@@ -14,7 +14,7 @@ internal partial class Interop
     internal partial class BCrypt
     {
         [DllImport(Libraries.BCrypt, CharSet = CharSet.Unicode)]
-        internal static extern NTSTATUS BCryptOpenAlgorithmProvider(out SafeBCryptAlgorithmHandle phAlgorithm, string? pszAlgId, string? pszImplementation, BCryptOpenAlgorithmProviderFlags dwFlags);
+        internal static extern NTSTATUS BCryptOpenAlgorithmProvider(out SafeBCryptAlgorithmHandle phAlgorithm, string pszAlgId, string? pszImplementation, BCryptOpenAlgorithmProviderFlags dwFlags);
 
         [Flags]
         internal enum BCryptOpenAlgorithmProviderFlags : int
index 6d40724..affae1f 100644 (file)
@@ -47,7 +47,6 @@ namespace System.Security.Cryptography
         /// <summary>
         ///     KSP to create the key in
         /// </summary>
-        [MaybeNull]
         public CngProvider Provider
         {
             get
@@ -69,6 +68,6 @@ namespace System.Security.Cryptography
         /// </summary>
         public CngUIPolicy? UIPolicy { get; set; }
 
-        private CngProvider? _provider;
+        private CngProvider _provider = null!; // will be initialized via property setter called by ctor
     }
 }