<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comentários sobre: Guia rápido de conversão e criação de certificados	</title>
	<atom:link href="https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/feed/" rel="self" type="application/rss+xml" />
	<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/</link>
	<description>the fun of code.</description>
	<lastBuildDate>Thu, 27 Apr 2017 12:09:30 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5</generator>
	<item>
		<title>
		Por: Ricardo Almeida		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-1762</link>

		<dc:creator><![CDATA[Ricardo Almeida]]></dc:creator>
		<pubDate>Thu, 27 Apr 2017 12:09:30 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-1762</guid>

					<description><![CDATA[Muito bem didático vlewww pela ajuda.]]></description>
			<content:encoded><![CDATA[<p>Muito bem didático vlewww pela ajuda.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Eduardo Mozart de Oliveira		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-886</link>

		<dc:creator><![CDATA[Eduardo Mozart de Oliveira]]></dc:creator>
		<pubDate>Fri, 03 Jan 2014 17:02:11 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-886</guid>

					<description><![CDATA[Erro do WordPress. Não postou meu último comentário corretamente.

Há um no primeiro script. Esqueci a parte da importação da dependência.
Adicione ao topo do script:

&lt;code&gt;
&#060;job id=&quot;Install-Firefox&quot;&#062;
&#060;script language=&quot;VBScript&quot; src=&quot;HtmlDlgHelp.vbs&quot;/&#062;
&#060;script language=&quot;VBScript&quot;&#062;
&lt;/code&gt;

E ao final:

&lt;code&gt;
&#060;/script&#062;
&#060;/job&#062;
&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>Erro do WordPress. Não postou meu último comentário corretamente.</p>
<p>Há um no primeiro script. Esqueci a parte da importação da dependência.<br />
Adicione ao topo do script:</p>
<p><code><br />
&lt;job id="Install-Firefox"&gt;<br />
&lt;script language="VBScript" src="HtmlDlgHelp.vbs"/&gt;<br />
&lt;script language="VBScript"&gt;<br />
</code></p>
<p>E ao final:</p>
<p><code><br />
&lt;/script&gt;<br />
&lt;/job&gt;<br />
</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Eduardo Mozart de Oliveira		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-885</link>

		<dc:creator><![CDATA[Eduardo Mozart de Oliveira]]></dc:creator>
		<pubDate>Fri, 03 Jan 2014 17:00:14 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-885</guid>

					<description><![CDATA[Há um no primeiro script. Esqueci a parte da importação da dependência.
Adicione ao topo do script:

&lt;code&gt;


 
&lt;/code&gt;

E ao final:

&lt;code&gt;


&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>Há um no primeiro script. Esqueci a parte da importação da dependência.<br />
Adicione ao topo do script:</p>
<p><code></p>
<p></code></p>
<p>E ao final:</p>
<p><code></p>
<p></code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Eduardo Mozart de Oliveira		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-884</link>

		<dc:creator><![CDATA[Eduardo Mozart de Oliveira]]></dc:creator>
		<pubDate>Fri, 03 Jan 2014 16:57:14 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-884</guid>

					<description><![CDATA[Muito obrigado pelo post! Foi muito útil!
Precisava converter os certificados v1, v2 e v3 da Receita Federal (CER) para CRT para importá-los ao Firefox.

Desenvolvi um script em VBScript que converte arquivos CER para CRT.
Ele possui uma caixa de diálogo que permite selecionarmos o certificado para conversão. É necessário possuir o GetGnuWin32 instalado em %ProgramFiles% (%ProgramFiles(x86)% no Windows x64).
Para quem se interessar:

&lt;i&gt;openssl-cer-para-crt.wsf&lt;/i&gt;
&lt;code&gt;


 
Set oShell = CreateObject(&quot;WScript.Shell&quot;)
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)

Dim PROCESSOR_ARCHITECTURE : PROCESSOR_ARCHITECTURE = oShell.ExpandEnvironmentStrings(&quot;%PROCESSOR_ARCHITECTURE%&quot;)
Dim ProgramFiles : ProgramFiles = oShell.ExpandEnvironmentStrings(&quot;%ProgramFiles%&quot;)

If PROCESSOR_ARCHITECTURE = &quot;AMD64&quot; Then 
	ProgramFiles = oShell.ExpandEnvironmentStrings(&quot;%ProgramFiles(x86)%&quot;)
End If

Dim Dlg, s
Set Dlg = new Dialogs

   &#039;-- To provide for 1 or more file type filters just put the name followed by one or more file
   &#039;-- extensions. The class with construct the filter as long as the paramter is formatted
   &#039;-- like this comma-delimited sample: type, extension, type, extension, type, extension   
   &#039;-- ....etc. There can be any number of filters. Use &quot;All Files, *&quot; to also have a general filter
   &#039;-- option that shows all files. If more than 1 extension applies to a file type, separate each
   &#039;-- with a space, as done here with the &quot;HTML Files&quot; type.

s = Dlg.FileOpenDlg(&quot;Selecionar arquivo contendo os certificados de CA a converter&quot;, &quot;&quot;, &quot;Arquivos de certificados , cer&quot;)

&#039;MsgBox s
&#039;MsgBox Quotes(ProgramFiles &#038; &quot;\GetGnuWin32\bin\openssl.exe&quot;) &#038; &quot; x509 -in &quot; &#038; Quotes(s) &#038; &quot; -out &quot; &#038; Quotes(Mid(s, 1, Len(s) - 4) &#038; &quot;.crt&quot;)

oShell.Run Quotes(ProgramFiles &#038; &quot;\GetGnuWin32\bin\openssl.exe&quot;) &#038; &quot; x509 -in &quot; &#038; Quotes(s) &#038; &quot; -out &quot; &#038; Quotes(Mid(s, 1, Len(s) - 4) &#038; &quot;.crt&quot;), 0, True

If Not oFSO.FileExists(Mid(s, 1, Len(s) - 4) &#038; &quot;.crt&quot;) Then
	oShell.Run Quotes(ProgramFiles &#038; &quot;\GetGnuWin32\bin\openssl.exe&quot;) &#038; &quot; x509 -inform DER -print_certs -in &quot; &#038; Quotes(s) &#038; &quot; -out &quot; &#038; Quotes(Mid(s, 1, Len(s) - 4) &#038; &quot;.cer&quot;), 0, True
End If

Set Dlg = Nothing

Function Quotes(strString)
	Quotes = Chr(34) &#038; strString &#038; Chr(34)
End Function



&lt;/code&gt;

Dependência para que o Diálogo possa funcionar. Salve no mesmo local do script anterior.
&lt;i&gt;HtmlDlgHelp.vbs&lt;/i&gt;
&lt;code&gt;
&#039;Dim Dlg, s
&#039;Set Dlg = new Dialogs

   &#039;-- To provide for 1 or more file type filters just put the name followed by one or more file
   &#039;-- extensions. The class with construct the filter as long as the paramter is formatted
   &#039;-- like this comma-delimited sample: type, extension, type, extension, type, extension   
   &#039;-- ....etc. There can be any number of filters. Use &quot;All Files, *&quot; to also have a general filter
   &#039;-- option that shows all files. If more than 1 extension applies to a file type, separate each
   &#039;-- with a space, as done here with the &quot;HTML Files&quot; type.

&#039;s = Dlg.FileOpenDlg(&quot;Choose File&quot;, &quot;&quot;, &quot;Text Files, txt, Log Files, log, HTML Files, htm html php asp hta&quot;)

&#039;MsgBox s

  
&#039;Set Dlg = Nothing


&#039;-------------------------------------- Dialogs Class -------------------------------------------------
&#039;-- This is touchy code. If not written just so there will be long lags before a dialog is shown.
&#039;-- If HTAs are not closed at the right time they&#039;ll keep running, resulting in a new HTA left running for each call.
&#039;-- If the same HTA is used for the life of the class it will fail on the 2nd or 3rd call. The whole operation to
&#039;-- create an HTA, initialize the control, and then clean up, must be done for every call.
&#039;-- savefiledlg doesn&#039;t seem to work, at least on XP. It shows an openfiledlg dialog instead and then errors when the selected file doesn&#039;t exist.

Class Dialogs
Private Cls_Dlg, Cls_HTA, Cls_IE2

Public Function FileOpenDlg(Title, StartDir, sFilter) &#039;-- openfiledlg([initFile as Variant][, initDir as Variant][, Filter as Variant][, Title as Variant])
    Dim Cls_Filter, Boo1, i2_c
       On Error Resume Next
     Boo1 = InitDlg()
        If Boo1 = False Then 
              CleanUp
              Boo1 = InitDlg()  &#039;-- sometimes the first init fails. ?? Reason unknown.
        End If
     If Boo1 = False Then Err.Raise 1, &quot;Dialogs Class&quot;, &quot;Failed to initialize HtmlDlgHelper object&quot;: Exit Function
          
     If Len(sFilter) &#062; 0 Then 
          Cls_Filter = GetFilterString(sFilter)
          FileOpenDlg = Cls_Dlg.openfiledlg(, CStr(StartDir), CStr(Cls_Filter), CStr(Title)) 
      Else
          FileOpenDlg = Cls_Dlg.openfiledlg(, CStr(StartDir), CStr(&quot;All Files(*.*)&#124;*.*&#124;&quot;), CStr(Title)) 
      End If
      
       If Len(FileOpenDlg) = 0 Then Exit Function
    
          &#039;--strange HTMLDlgHelper behavior. Returns a string ending with nulls.
          &#039;-- The nulls won&#039;t affect using the string, but they will matter if you test the string.
          &#039;-- For instance: If UCase(Right(s, 3)) = &quot;TXT&quot; Then ....   That won&#039;t work unless the nulls are snipped.    
          &#039;-- so check for nulls. If first null is first character that will return &quot;&quot;. Otherwise there&#039;s a path string to
          &#039;--  extract from the string buffer.
      i2_c = InStr(FileOpenDlg, Chr(0))
      If i2_c &#062; 1 Then  FileOpenDlg = Left(FileOpenDlg, (i2_c - 1))
     
     CleanUp
 End Function

Private Function GetFilterString(sFilter)
  Dim A1, i2, s1
   On Error Resume Next
     A1 = Split(sFilter, &quot;,&quot;)
        i2 = 0
     Do While i2 &#060; UBound(A1)
         GetFilterString = GetFilterString &#038; Trim(A1(i2))
            s1 = Trim(A1(i2 + 1))
            s1 = &#034;*.&#034; &#038; s1
            s1 = Replace(s1, &#034; &#034;, &#034;;*.&#034;)
            GetFilterString = GetFilterString &#038; &#034;(&#034; &#038; s1 &#038; &#034;)&#124;&#034; &#038; s1 &#038; &#034;&#124;&#034; 
             i2 = i2 + 2
      Loop
End Function

Private Function InitDlg()
   Dim Cls_iCount, Cls_IE, Cls_SHAp
        &#039;-- ugly hack required to get around problem of HTMLDlgHelper.HTMLDlgHelper being a control that needs to be sited.
     &#039;-- it&#039;s also not marked as safe for scripting. This method dynamically creates an HTA, then gets the window.
     InitDlg = False
   CreateObject(&#034;WSCript.Shell&#034;).Run &#034;MSHTA.EXE &#034;&#034;javascript:new ActiveXObject(&#039;InternetExplorer.Application&#039;).PutProperty(&#039;ID1&#039;, window);&#034;&#034;&#034;, 0, False 

     &#039;-- Next step: go through open windows and retrieve the window object for just-created HTA.
    Set Cls_SHAp = CreateObject(&#034;Shell.Application&#034;) 
    On Error Resume Next  
     Cls_iCount = 1
          Do Until Cls_iCount = 10
             For Each Cls_IE In Cls_SHAp.Windows
                If IsObject(Cls_IE.GetProperty(&#034;ID1&#034;)) Then
                    Set Cls_IE2 = Cls_IE           
                    Exit Do
                End If   
             Next 
                WScript.sleep 100
                Cls_iCount = Cls_iCount + 1
          Loop  
      Set Cls_SHAp = Nothing &#039;-- done with Shell.Application. 
      If Not IsObject(Cls_IE2) Then Exit Function
 
      Set Cls_HTA = Cls_IE2.GetProperty(&#034;ID1&#034;)  &#039;-- Cls_HTA is now an HTMLWindow2 object.
          &#039;-- instantiate the HTMLDlgHelper.HTMLDlgHelper control.
      Cls_HTA.document.body.innerHTML = &#034; &quot;
      Set Cls_Dlg = Cls_HTA.Dlg.Object  &#039;-- get a reference to the control.
      Cls_IE2.quit  &#039;-- this seems to be necessary, but if done elsewhere it may cause an odd lag of 4-5 seconds.

   If IsObject(Cls_Dlg) Then InitDlg = True
End Function

Private Sub CleanUp()
  On Error Resume Next
    Set Cls_Dlg = Nothing 
   If IsObject(Cls_HTA) Then
      Cls_HTA.Close 
      Set Cls_HTA = Nothing
   End If   
   If IsObject(Cls_IE2) Then
      Cls_IE2.quit
      Set Cls_IE2 = Nothing
    End If
End Sub

  &#039;-- this shouldn&#039;t be necessary because each HTA is closed after a call is made.
Private Sub Class_Terminate()
   CleanUp
End Sub

End Class
&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>Muito obrigado pelo post! Foi muito útil!<br />
Precisava converter os certificados v1, v2 e v3 da Receita Federal (CER) para CRT para importá-los ao Firefox.</p>
<p>Desenvolvi um script em VBScript que converte arquivos CER para CRT.<br />
Ele possui uma caixa de diálogo que permite selecionarmos o certificado para conversão. É necessário possuir o GetGnuWin32 instalado em %ProgramFiles% (%ProgramFiles(x86)% no Windows x64).<br />
Para quem se interessar:</p>
<p><i>openssl-cer-para-crt.wsf</i><br />
<code></p>
<p>Set oShell = CreateObject("WScript.Shell")<br />
Set oFSO = CreateObject("Scripting.FileSystemObject")</p>
<p>Dim PROCESSOR_ARCHITECTURE : PROCESSOR_ARCHITECTURE = oShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")<br />
Dim ProgramFiles : ProgramFiles = oShell.ExpandEnvironmentStrings("%ProgramFiles%")</p>
<p>If PROCESSOR_ARCHITECTURE = "AMD64" Then<br />
	ProgramFiles = oShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%")<br />
End If</p>
<p>Dim Dlg, s<br />
Set Dlg = new Dialogs</p>
<p>   '-- To provide for 1 or more file type filters just put the name followed by one or more file<br />
   '-- extensions. The class with construct the filter as long as the paramter is formatted<br />
   '-- like this comma-delimited sample: type, extension, type, extension, type, extension<br />
   '-- ....etc. There can be any number of filters. Use "All Files, *" to also have a general filter<br />
   '-- option that shows all files. If more than 1 extension applies to a file type, separate each<br />
   '-- with a space, as done here with the "HTML Files" type.</p>
<p>s = Dlg.FileOpenDlg("Selecionar arquivo contendo os certificados de CA a converter", "", "Arquivos de certificados , cer")</p>
<p>'MsgBox s<br />
'MsgBox Quotes(ProgramFiles &amp; "\GetGnuWin32\bin\openssl.exe") &amp; " x509 -in " &amp; Quotes(s) &amp; " -out " &amp; Quotes(Mid(s, 1, Len(s) - 4) &amp; ".crt")</p>
<p>oShell.Run Quotes(ProgramFiles &amp; "\GetGnuWin32\bin\openssl.exe") &amp; " x509 -in " &amp; Quotes(s) &amp; " -out " &amp; Quotes(Mid(s, 1, Len(s) - 4) &amp; ".crt"), 0, True</p>
<p>If Not oFSO.FileExists(Mid(s, 1, Len(s) - 4) &amp; ".crt") Then<br />
	oShell.Run Quotes(ProgramFiles &amp; "\GetGnuWin32\bin\openssl.exe") &amp; " x509 -inform DER -print_certs -in " &amp; Quotes(s) &amp; " -out " &amp; Quotes(Mid(s, 1, Len(s) - 4) &amp; ".cer"), 0, True<br />
End If</p>
<p>Set Dlg = Nothing</p>
<p>Function Quotes(strString)<br />
	Quotes = Chr(34) &amp; strString &amp; Chr(34)<br />
End Function</p>
<p></code></p>
<p>Dependência para que o Diálogo possa funcionar. Salve no mesmo local do script anterior.<br />
<i>HtmlDlgHelp.vbs</i><br />
<code><br />
'Dim Dlg, s<br />
'Set Dlg = new Dialogs</p>
<p>   '-- To provide for 1 or more file type filters just put the name followed by one or more file<br />
   '-- extensions. The class with construct the filter as long as the paramter is formatted<br />
   '-- like this comma-delimited sample: type, extension, type, extension, type, extension<br />
   '-- ....etc. There can be any number of filters. Use "All Files, *" to also have a general filter<br />
   '-- option that shows all files. If more than 1 extension applies to a file type, separate each<br />
   '-- with a space, as done here with the "HTML Files" type.</p>
<p>'s = Dlg.FileOpenDlg("Choose File", "", "Text Files, txt, Log Files, log, HTML Files, htm html php asp hta")</p>
<p>'MsgBox s</p>
<p>'Set Dlg = Nothing</p>
<p>'-------------------------------------- Dialogs Class -------------------------------------------------<br />
'-- This is touchy code. If not written just so there will be long lags before a dialog is shown.<br />
'-- If HTAs are not closed at the right time they'll keep running, resulting in a new HTA left running for each call.<br />
'-- If the same HTA is used for the life of the class it will fail on the 2nd or 3rd call. The whole operation to<br />
'-- create an HTA, initialize the control, and then clean up, must be done for every call.<br />
'-- savefiledlg doesn't seem to work, at least on XP. It shows an openfiledlg dialog instead and then errors when the selected file doesn't exist.</p>
<p>Class Dialogs<br />
Private Cls_Dlg, Cls_HTA, Cls_IE2</p>
<p>Public Function FileOpenDlg(Title, StartDir, sFilter) '-- openfiledlg([initFile as Variant][, initDir as Variant][, Filter as Variant][, Title as Variant])<br />
    Dim Cls_Filter, Boo1, i2_c<br />
       On Error Resume Next<br />
     Boo1 = InitDlg()<br />
        If Boo1 = False Then<br />
              CleanUp<br />
              Boo1 = InitDlg()  '-- sometimes the first init fails. ?? Reason unknown.<br />
        End If<br />
     If Boo1 = False Then Err.Raise 1, "Dialogs Class", "Failed to initialize HtmlDlgHelper object": Exit Function</p>
<p>     If Len(sFilter) &gt; 0 Then<br />
          Cls_Filter = GetFilterString(sFilter)<br />
          FileOpenDlg = Cls_Dlg.openfiledlg(, CStr(StartDir), CStr(Cls_Filter), CStr(Title))<br />
      Else<br />
          FileOpenDlg = Cls_Dlg.openfiledlg(, CStr(StartDir), CStr("All Files(*.*)|*.*|"), CStr(Title))<br />
      End If</p>
<p>       If Len(FileOpenDlg) = 0 Then Exit Function</p>
<p>          '--strange HTMLDlgHelper behavior. Returns a string ending with nulls.<br />
          '-- The nulls won't affect using the string, but they will matter if you test the string.<br />
          '-- For instance: If UCase(Right(s, 3)) = "TXT" Then ....   That won't work unless the nulls are snipped.<br />
          '-- so check for nulls. If first null is first character that will return "". Otherwise there's a path string to<br />
          '--  extract from the string buffer.<br />
      i2_c = InStr(FileOpenDlg, Chr(0))<br />
      If i2_c &gt; 1 Then  FileOpenDlg = Left(FileOpenDlg, (i2_c - 1))</p>
<p>     CleanUp<br />
 End Function</p>
<p>Private Function GetFilterString(sFilter)<br />
  Dim A1, i2, s1<br />
   On Error Resume Next<br />
     A1 = Split(sFilter, ",")<br />
        i2 = 0<br />
     Do While i2 &lt; UBound(A1)<br />
         GetFilterString = GetFilterString &amp; Trim(A1(i2))<br />
            s1 = Trim(A1(i2 + 1))<br />
            s1 = &quot;*.&quot; &amp; s1<br />
            s1 = Replace(s1, &quot; &quot;, &quot;;*.&quot;)<br />
            GetFilterString = GetFilterString &amp; &quot;(&quot; &amp; s1 &amp; &quot;)|&quot; &amp; s1 &amp; &quot;|&quot;<br />
             i2 = i2 + 2<br />
      Loop<br />
End Function</p>
<p>Private Function InitDlg()<br />
   Dim Cls_iCount, Cls_IE, Cls_SHAp<br />
        &#039;-- ugly hack required to get around problem of HTMLDlgHelper.HTMLDlgHelper being a control that needs to be sited.<br />
     &#039;-- it&#039;s also not marked as safe for scripting. This method dynamically creates an HTA, then gets the window.<br />
     InitDlg = False<br />
   CreateObject(&quot;WSCript.Shell&quot;).Run &quot;MSHTA.EXE &quot;&quot;javascript:new ActiveXObject(&#039;InternetExplorer.Application&#039;).PutProperty(&#039;ID1&#039;, window);&quot;&quot;&quot;, 0, False </p>
<p>     &#039;-- Next step: go through open windows and retrieve the window object for just-created HTA.<br />
    Set Cls_SHAp = CreateObject(&quot;Shell.Application&quot;)<br />
    On Error Resume Next<br />
     Cls_iCount = 1<br />
          Do Until Cls_iCount = 10<br />
             For Each Cls_IE In Cls_SHAp.Windows<br />
                If IsObject(Cls_IE.GetProperty(&quot;ID1&quot;)) Then<br />
                    Set Cls_IE2 = Cls_IE<br />
                    Exit Do<br />
                End If<br />
             Next<br />
                WScript.sleep 100<br />
                Cls_iCount = Cls_iCount + 1<br />
          Loop<br />
      Set Cls_SHAp = Nothing &#039;-- done with Shell.Application.<br />
      If Not IsObject(Cls_IE2) Then Exit Function</p>
<p>      Set Cls_HTA = Cls_IE2.GetProperty(&quot;ID1&quot;)  &#039;-- Cls_HTA is now an HTMLWindow2 object.<br />
          &#039;-- instantiate the HTMLDlgHelper.HTMLDlgHelper control.<br />
      Cls_HTA.document.body.innerHTML = &quot; "<br />
      Set Cls_Dlg = Cls_HTA.Dlg.Object  '-- get a reference to the control.<br />
      Cls_IE2.quit  '-- this seems to be necessary, but if done elsewhere it may cause an odd lag of 4-5 seconds.</p>
<p>   If IsObject(Cls_Dlg) Then InitDlg = True<br />
End Function</p>
<p>Private Sub CleanUp()<br />
  On Error Resume Next<br />
    Set Cls_Dlg = Nothing<br />
   If IsObject(Cls_HTA) Then<br />
      Cls_HTA.Close<br />
      Set Cls_HTA = Nothing<br />
   End If<br />
   If IsObject(Cls_IE2) Then<br />
      Cls_IE2.quit<br />
      Set Cls_IE2 = Nothing<br />
    End If<br />
End Sub</p>
<p>  '-- this shouldn't be necessary because each HTA is closed after a call is made.<br />
Private Sub Class_Terminate()<br />
   CleanUp<br />
End Sub</p>
<p>End Class<br />
</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Igor rocha		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-876</link>

		<dc:creator><![CDATA[Igor rocha]]></dc:creator>
		<pubDate>Fri, 25 Oct 2013 12:49:59 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-876</guid>

					<description><![CDATA[Muito obrigado, me ajudou bastante.. 

abraço..]]></description>
			<content:encoded><![CDATA[<p>Muito obrigado, me ajudou bastante.. </p>
<p>abraço..</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Pereira, Thiago Santos		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-731</link>

		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Mon, 29 Oct 2012 15:52:32 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-731</guid>

					<description><![CDATA[Em resposta a &lt;a href=&quot;https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-730&quot;&gt;RSimom&lt;/a&gt;.

Opa!

Basta adiciona o parametro -aes256 quando for criar a sua chave

[pre]openssl genrsa -aes256 -out  chave_privada.key 1024[/pre]

Abraço,]]></description>
			<content:encoded><![CDATA[<p>Em resposta a <a href="https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-730">RSimom</a>.</p>
<p>Opa!</p>
<p>Basta adiciona o parametro -aes256 quando for criar a sua chave</p>
<p>[pre]openssl genrsa -aes256 -out  chave_privada.key 1024[/pre]</p>
<p>Abraço,</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: RSimom		</title>
		<link>https://thiagosantos.com/blog/293/linux/guia-rapido-de-conversao-de-certificados/#comment-730</link>

		<dc:creator><![CDATA[RSimom]]></dc:creator>
		<pubDate>Mon, 29 Oct 2012 13:23:07 +0000</pubDate>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=293#comment-730</guid>

					<description><![CDATA[Tiago, como faço caso eu queira gerar um certificado com AES 256???]]></description>
			<content:encoded><![CDATA[<p>Tiago, como faço caso eu queira gerar um certificado com AES 256???</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
