1 #Region "Microsoft.VisualBasic::2426ab869f022939478cb92429bbe6a0, Microsoft.VisualBasic.Core\ApplicationServices\Tools\Network\SSL\Extensions.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Module CAExtensions
35     
36     '         FunctionInstallCommon
37     
38     
39     ' /********************************************************************************/
40
41 #End Region
42
43 Imports System.Reflection
44 Imports Microsoft.VisualBasic.Win32
45
46 Namespace Net.SSL
47
48     Module CAExtensions
49
50         Public Function InstallCommon(ByRef privateKeys As Dictionary(Of Long, Net.SSL.Certificate),
51                                       CA As Certificate,
52                                       [overrides] As Boolean,
53                                       trace As String,
54                                       invoke As MethodInfo) As Boolean
55
56             If privateKeys.ContainsKey(CA.uid) Then
57                 If WindowsServices.Initialized Then
58                     Call ServicesLogs.WriteEntry({$"{invoke.DeclaringType.Name} private key dictionary contains a certificate which its uid: {CA.uid} is conflict with the new install certificate.",
59                                                  If([overrides], "And the old conflicting certificates was overrides by the new one.""The certificates operation was skipped!"),
60                                                  $"Current:  {privateKeys(CA.uid).ToString}",
61                                                  $"Certificates_going_to_install:  {CA.ToString}",
62                                                  $"install_trace:  {trace}"},
63                                                  invoke.FullName,
64                                                  EventLogEntryType.SuccessAudit)
65                 End If
66
67                 If [overrides] Then
68                     Call privateKeys.Remove(CA.uid)
69                 Else
70                     Return False
71                 End If
72             End If
73
74             Call privateKeys.Add(CA.uid, CA)
75
76             If WindowsServices.Initialized Then
77                 Call ServicesLogs.WriteEntry({$"New certificates was installed on server!", CA.ToString},
78                                              $"{trace} ==> {invoke.FullName}",
79                                              EventLogEntryType.SuccessAudit)
80             End If
81
82             Return True
83         End Function
84     End Module
85 End Namespace