@@ -57,8 +57,11 @@ private RSA CreateKeyStoreKeyInNamedContainer(bool useCng)
57
57
58
58
CspParameters Params = new CspParameters ( ) ;
59
59
Params . KeyContainerName = "AgentKeyContainer" + Guid . NewGuid ( ) . ToString ( ) ;
60
- Params . Flags |= CspProviderFlags . UseNonExportableKey | CspProviderFlags . UseMachineKeyStore ;
61
- rsa = new RSACryptoServiceProvider ( 2048 , Params ) ;
60
+ Params . Flags |= CspProviderFlags . UseMachineKeyStore ;
61
+ using ( var csp = new RSACryptoServiceProvider ( 2048 , Params ) )
62
+ {
63
+ rsa = RSA . Create ( csp . ExportParameters ( includePrivateParameters : true ) ) ;
64
+ }
62
65
63
66
// Now write the parameters to disk
64
67
SaveParameters ( default ( RSAParameters ) , Params . KeyContainerName , useCng ) ;
@@ -79,8 +82,11 @@ private RSA CreateKeyStoreKeyInNamedContainer(bool useCng)
79
82
80
83
CspParameters Params = new CspParameters ( ) ;
81
84
Params . KeyContainerName = result . containerName ;
82
- Params . Flags |= CspProviderFlags . UseNonExportableKey | CspProviderFlags . UseMachineKeyStore ;
83
- rsa = new RSACryptoServiceProvider ( Params ) ;
85
+ Params . Flags |= CspProviderFlags . UseMachineKeyStore ;
86
+ using ( var csp = new RSACryptoServiceProvider ( Params ) )
87
+ {
88
+ rsa = RSA . Create ( csp . ExportParameters ( includePrivateParameters : true ) ) ;
89
+ }
84
90
}
85
91
86
92
return rsa ;
@@ -93,12 +99,12 @@ private RSA CreateKeyStoreKeyInNamedContainer(bool useCng)
93
99
94
100
private RSA CreateKeyStoreKeyInFile ( bool useCng )
95
101
{
96
- RSACryptoServiceProvider rsa = null ;
102
+ RSA rsa = null ;
97
103
if ( ! File . Exists ( _keyFile ) )
98
104
{
99
105
Trace . Info ( "Creating new RSA key using 2048-bit key length" ) ;
100
106
101
- rsa = new RSACryptoServiceProvider ( 2048 ) ;
107
+ rsa = RSA . Create ( 2048 ) ;
102
108
103
109
// Now write the parameters to disk
104
110
SaveParameters ( rsa . ExportParameters ( true ) , string . Empty , false ) ;
@@ -116,7 +122,6 @@ private RSA CreateKeyStoreKeyInFile(bool useCng)
116
122
return CreateKeyStoreKeyInNamedContainer ( useCng ) ;
117
123
}
118
124
119
- rsa = new RSACryptoServiceProvider ( ) ;
120
125
rsa . ImportParameters ( result . rsaParameters ) ;
121
126
}
122
127
@@ -170,9 +175,11 @@ private RSA GetKeyFromNamedContainer()
170
175
Trace . Info ( "Using RSACryptoServiceProvider" ) ;
171
176
CspParameters Params = new CspParameters ( ) ;
172
177
Params . KeyContainerName = result . containerName ;
173
- Params . Flags |= CspProviderFlags . UseNonExportableKey | CspProviderFlags . UseMachineKeyStore ;
174
- var rsa = new RSACryptoServiceProvider ( Params ) ;
175
- return rsa ;
178
+ Params . Flags |= CspProviderFlags . UseMachineKeyStore ;
179
+ using ( var csp = new RSACryptoServiceProvider ( Params ) )
180
+ {
181
+ return RSA . Create ( csp . ExportParameters ( includePrivateParameters : true ) ) ;
182
+ }
176
183
}
177
184
}
178
185
@@ -193,9 +200,7 @@ private RSA GetKeyFromFile()
193
200
return GetKeyFromNamedContainer ( ) ;
194
201
}
195
202
196
- var rsa = new RSACryptoServiceProvider ( ) ;
197
- rsa . ImportParameters ( result . rsaParameters ) ;
198
- return rsa ;
203
+ return RSA . Create ( result . rsaParameters ) ;
199
204
}
200
205
201
206
private ( string containerName , bool useCng , RSAParameters rsaParameters ) LoadParameters ( )
0 commit comments