[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r4000: Lots of code cleanup for HerdictWeb plugin. Fixed build usin (in vidalia/branches/extension-api: . src/plugins src/plugins/HerdictWebReporterPlugin src/vidalia/res src/vidalia/res/herdict)



Author: tyree731
Date: 2009-08-03 21:26:05 -0400 (Mon, 03 Aug 2009)
New Revision: 4000

Added:
   vidalia/branches/extension-api/src/vidalia/res/herdict/EquifaxSecureCA.crt
Modified:
   vidalia/branches/extension-api/CMakeLists.txt
   vidalia/branches/extension-api/src/plugins/CMakeLists.txt
   vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.cpp
   vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.h
   vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.ui
   vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h
   vidalia/branches/extension-api/src/vidalia/res/vidalia.qrc
Log:
Lots of code cleanup for HerdictWeb plugin. Fixed build using Matts new setup. Beginning of SSL use.


Modified: vidalia/branches/extension-api/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/CMakeLists.txt	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/CMakeLists.txt	2009-08-04 01:26:05 UTC (rev 4000)
@@ -30,7 +30,7 @@
 option(USE_MARBLE "Enable the KDE Marble-based map widget." OFF)
 
 ## Allows for inclusion of QWebKit when using HerdictWeb Reporter
-option(USE_HERDICTWEB "Enable HerdictWeb Reporter." ON)
+option(WITH_HERDICTWEB_PLUGIN "Enable HerdictWeb Reporter." ON)
 
 ## Specify the minimum version of Qt required
 set(QT_MIN_VERSION    "4.5.0")
@@ -41,10 +41,9 @@
 set(QT_USE_QTNETWORK  true)
 set(QT_USE_QTXML      true)
 
-if (USE_HERDICTWEB)
+if (WITH_HERDICTWEB_PLUGIN)
   set(QT_USE_QTWEBKIT true)
-  set(QT_USE_QTSCRIPT true)
-endif(USE_HERDICTWEB)
+endif(WITH_HERDICTWEB_PLUGIN)
 
 if (USE_MARBLE)
   set(QT_USE_QTSVG    true)

Modified: vidalia/branches/extension-api/src/plugins/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/plugins/CMakeLists.txt	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/plugins/CMakeLists.txt	2009-08-04 01:26:05 UTC (rev 4000)
@@ -25,7 +25,7 @@
 add_library(vidaliaplugin STATIC ${plugin_SRCS})
 target_link_libraries(vidaliaplugin ${QT_LIBRARIES})
 
-if (WITH_HERDICT_PLUGIN)
+if (WITH_HERDICTWEB_PLUGIN)
   add_subdirectory(HerdictWebReporterPlugin)
-endif(WITH_HERDICT_PLUGIN)
+endif(WITH_HERDICTWEB_PLUGIN)
 

Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.cpp	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.cpp	2009-08-04 01:26:05 UTC (rev 4000)
@@ -16,12 +16,14 @@
 
 #include "HerdictWebReporterPanel.h"
 
+#include <QFile>
 #include <QHostAddress>
 #include <QList>
 #include <QNetworkAccessManager>
 #include <QNetworkProxy>
 #include <QNetworkReply>
 #include <QNetworkRequest>
+#include <QSslCertificate>
 #include <QSslConfiguration>
 #include <QString>
 #include <QUrl>
@@ -52,9 +54,19 @@
   _torAccessManager = new QNetworkAccessManager(this);
   _torAccessManager->setProxy(torProxy);
 
-  /* Make the Tor Web View use this network access manager */
+  /* When either access manager finishes a request, handle the response */
+  connect(_accessManager, SIGNAL(finished(QNetworkReply*)),
+          this, SLOT(requestFinished(QNetworkReply*)));
+  connect(_torAccessManager, SIGNAL(finished(QNetworkReply*)),
+          this, SLOT(requestFinished(QNetworkReply*)));
+
+  /* Make the web views use their respective network access manager */
+  ui.webViewPlain->page()->setNetworkAccessManager(_accessManager);
   ui.webViewTor->page()->setNetworkAccessManager(_torAccessManager);
 
+  /* Create the SSL configuration used by the application */
+  createSslConfiguration();
+
   /* Populate the left side of the panel */
   populateHerdictOptions();
 
@@ -66,9 +78,9 @@
   connect(ui.lineUrlEntry, SIGNAL(returnPressed()),
           this, SLOT(loadUrl()));
   connect(ui.buttonAccessible, SIGNAL(pressed()),
-          this, SLOT(submitAccessible()));
+          this, SLOT(submitReport()));
   connect(ui.buttonInAccessible, SIGNAL(pressed()),
-          this, SLOT(submitInAccessible()));
+          this, SLOT(submitReport()));
 
   /* *** TODO: Fix status message signals *** */
 
@@ -76,9 +88,9 @@
   connect(ui.webViewPlain, SIGNAL(loadStarted()),
           this, SLOT(loadStarted()));
   connect(ui.webViewPlain, SIGNAL(loadFinished(bool)), 
-          this, SLOT(plainLoadFinished(bool)));
+          this, SLOT(loadFinished(bool)));
   connect(ui.webViewTor, SIGNAL(loadFinished(bool)), 
-          this, SLOT(torLoadFinished(bool)));
+          this, SLOT(loadFinished(bool)));
   connect(ui.webViewPlain, SIGNAL(statusBarMessage(QString)),
           this, SLOT(changeStatusMessage(QString)));
   connect(ui.webViewTor, SIGNAL(statusBarMessage(QString)),
@@ -123,6 +135,28 @@
 }
 
 void
+HerdictWebReporterPanel::loadFinished(bool result)
+{
+  /* ***TODO: Add an error page that loads if the request failed *** */
+
+  /* Figure out which web view sent the request */
+  QWebView* webView = qobject_cast<QWebView*>(sender());
+
+  /* Hide the statusbar */
+  if (webView->page()->networkAccessManager()->proxy() == 
+      QNetworkProxy::DefaultProxy) {
+    ui.progressPlain->hide();
+  }
+  else {
+    ui.progressTor->hide();
+  }
+
+  if (!result) {
+    webView->load(QUrl("about:blank"));
+  }
+}
+
+void
 HerdictWebReporterPanel::loadStarted()
 {
   /* Show the progress bars */
@@ -151,7 +185,7 @@
   else {
     request += QString("US");
   }
-  request += QString("/none/FF1.0/");
+  request += QString("/none/Vidalia1.0/");
 
   /* Build request */
   QUrl informationUrl(request);
@@ -162,17 +196,6 @@
 }
 
 void
-HerdictWebReporterPanel::plainLoadFinished(bool result)
-{
-  /* ***TODO: Add an error page that loads if the request failed *** */
-
-  /* Hide the statusbar */
-  ui.progressPlain->hide();
-  if (!result)
-    ui.webViewPlain->load(QUrl("about:blank"));
-}
-
-void
 HerdictWebReporterPanel::requestFinished(QNetworkReply* reply)
 {
   /* Create the json parser */
@@ -275,7 +298,7 @@
 }
 
 void
-HerdictWebReporterPanel::submitAccessible()
+HerdictWebReporterPanel::submitReport()
 {
   /* *** TODO: Make use Tor+SSL *** */
 
@@ -283,46 +306,25 @@
   ui.buttonAccessible->setDisabled(true);
   ui.buttonInAccessible->setDisabled(true);
 
-  /* Construct request */
-  QUrl request(constructRequest(HerdictWebReporterPanel::Accessible));
+  /* Figure out which button was pressed */
+  QPushButton* button = qobject_cast<QPushButton*>(sender());
+
+  /* Create the request */
+  QString requestString;
+  /* Hacktastic way of differentiating buttons */
+  if (button->autoRepeatDelay() == 301) {
+    requestString = constructRequest(HerdictWebReporterPanel::Accessible);
+  }
+  else {
+    requestString = constructRequest(HerdictWebReporterPanel::InAccessible);
+  }
+  QUrl request(requestString);
   QNetworkRequest networkRequest(request);
-#if 0
-  networkRequest.setSslConfiguration(QSslConfiguration());
-#endif
-  /* Send request */
-  QNetworkReply* reply = _accessManager->get(networkRequest);
-}
 
-void
-HerdictWebReporterPanel::submitInAccessible()
-{
-  /* *** TODO: Make use Tor+SSL *** */
-
-  /* Disable the submit buttons */
-  ui.buttonAccessible->setDisabled(true);
-  ui.buttonInAccessible->setDisabled(true);
-
-  /* Construct request */
-  QUrl request(constructRequest(HerdictWebReporterPanel::InAccessible));
-  QNetworkRequest networkRequest(request);
-#if 0
-  networkRequest.setSslConfiguration(QSslConfiguration());
-#endif
   /* Send request */
-  QNetworkReply* reply = _accessManager->get(networkRequest);
+  _accessManager->get(networkRequest);
 }
 
-void
-HerdictWebReporterPanel::torLoadFinished(bool result)
-{
-  /* *** TODO: Add an error page that loads if the request fails *** */
-
-  /* Hide the statusbar */
-  ui.progressTor->hide();
-  if (!result)
-    ui.webViewTor->load(QUrl("about:blank"));
-}
-
 QString
 HerdictWebReporterPanel::constructRequest(
   HerdictWebReporterPanel::ReportPageType type)
@@ -345,7 +347,7 @@
                            ui.comboUsefulnessEntry->currentIndex()).toString());
   request += (QString("&report.reason=") + ui.comboCauseEntry->itemData(
                            ui.comboCauseEntry->currentIndex()).toString());
-  request += (QString("&report.sourceId=") + QString("%1").arg(3));
+  request += (QString("&report.sourceId=") + QString("%1").arg(4));
   request += (QString("&report.tag=") + ui.comboCategoryEntry->itemData(
                            ui.comboCategoryEntry->currentIndex()).toString());
   request += (QString("&report.comments=") +ui.textCommentEntry->toPlainText());
@@ -357,21 +359,34 @@
 }
 
 void
+HerdictWebReporterPanel::createSslConfiguration()
+{
+  _sslConfig = new QSslConfiguration(QSslConfiguration::defaultConfiguration());
+
+  /* Make a list of ceritificates which only uses HerdictWeb's CA */
+  QList<QSslCertificate> caCertificates;
+  QFile* caFile = new QFile(":herdict/EquifaxSecureCA.crt");
+  QSslCertificate ca(caFile);
+  caCertificates.append(ca);
+
+  /* Set the configuration to use the CA list */
+  _sslConfig->setCaCertificates(caCertificates);
+
+  delete caFile;
+}
+
+void
 HerdictWebReporterPanel::populateHerdictOptions()
 {
   /* *** TODO: Make all requests use SSL ***  */
 
-  /* When access manager finishes a request, will send signal to handler */
-  connect(_accessManager, SIGNAL(finished(QNetworkReply*)), 
-          this, SLOT(requestFinished(QNetworkReply*)));
-
   /* Create each network request */
-  QNetworkRequest categoriesRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-categories/";));
-  QNetworkRequest countriesRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-countries/";));
-  QNetworkRequest locationsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-locations/";));
-  QNetworkRequest interestsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-interests/";));
-  QNetworkRequest reasonsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-reasons/";));
-  QNetworkRequest currentLocationRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-currentLocation/FF1.0";));
+  QNetworkRequest categoriesRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-categories/Vidalia1.0";));
+  QNetworkRequest countriesRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-countries/Vidalia1.0";));
+  QNetworkRequest locationsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-locations/Vidalia1.0";));
+  QNetworkRequest interestsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-interests/Vidalia1.0";));
+  QNetworkRequest reasonsRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-reasons/Vidalia1.0";));
+  QNetworkRequest currentLocationRequest(QUrl("http://www.herdict.org/web/action/ajax/plugin/init-currentLocation/Vidalia1.0";));
 
   /* Now make the requests */
   _accessManager->get(categoriesRequest);

Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.h	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.h	2009-08-04 01:26:05 UTC (rev 4000)
@@ -19,12 +19,13 @@
 
 #include <QLabel>
 
-#include <vidalia/VidaliaPanel.h>
+#include <plugins/VidaliaPanel.h>
 
 #include "ui_HerdictWebReporterPanel.h"
 
 class HerdictWebReporterPlugin;
 class QNetworkAccessManager;
+class QSslConfiguration;
 
 class HerdictWebReporterPanel : public VidaliaPanel
 {
@@ -44,20 +45,16 @@
 private slots:
   /* Change the status bar message */
   void changeStatusMessage(const QString& message);
+  /* Handle webViewPlain finishing */
+  void loadFinished(bool result);
   /* Slot to handle the signal loadStarted */
   void loadStarted();
   /* Loads the Url in the text box */
   void loadUrl();
-  /* Handle webViewPlain finishing */
-  void plainLoadFinished(bool result);
   /* Handle web request from the access manager */
   void requestFinished(QNetworkReply* reply);
-  /* Handles submitting a website accessible request */
-  void submitAccessible();
-  /* Handles submitted a website inaccessible request */
-  void submitInAccessible();
-  /* Handle webViewTor finishing. */
-  void torLoadFinished(bool result);
+  /* Handles submitting a website accessible/inaccessible report */
+  void submitReport();
 private:
   /** The two types of requests possible */
   enum ReportPageType {
@@ -68,6 +65,8 @@
   /** Takes in what type of request is being constructed and returns the
    * HerdictWeb report page request */
   QString constructRequest(HerdictWebReporterPanel::ReportPageType type);
+  /** Function used to create the SSL configuratio used to contact HerdictWeb */
+  void createSslConfiguration();
   /** Function used to populate the left side of the Herdict Plugin panel */
   void populateHerdictOptions();
 
@@ -75,9 +74,11 @@
   Ui::HerdictWebReporterPanel ui;
   /** The status bar widget */
   QLabel* _statusWidget;
-  /** Access manager. Used for HerdictWeb requests */
+  /** Access managers. Used for HerdictWeb requests */
   QNetworkAccessManager* _accessManager;
   QNetworkAccessManager* _torAccessManager;
+  /** SSL config. Used by all network requests to HerdictWeb */
+  QSslConfiguration* _sslConfig;
 
   /** Needed for the HerdictWeb API */
   QString _defaultCountryCode;

Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.ui
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.ui	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPanel.ui	2009-08-04 01:26:05 UTC (rev 4000)
@@ -57,25 +57,6 @@
     <property name="margin">
      <number>0</number>
     </property>
-    <item row="0" column="0" colspan="2">
-     <widget class="QLabel" name="lblHeaderBackground">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="text">
-       <string/>
-      </property>
-      <property name="pixmap">
-       <pixmap resource="../res/vidalia.qrc">:/herdict/herdict/herdict-header-background.gif</pixmap>
-      </property>
-      <property name="scaledContents">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
     <item row="1" column="0">
      <layout class="QVBoxLayout" name="verticalLayoutFields">
       <property name="sizeConstraint">
@@ -313,7 +294,7 @@
            <string/>
           </property>
           <property name="icon">
-           <iconset resource="../res/vidalia.qrc">
+           <iconset resource="../../vidalia/res/vidalia.qrc">
             <normaloff>:/herdict/herdict/herdict-button-inaccessible.gif</normaloff>:/herdict/herdict/herdict-button-inaccessible.gif</iconset>
           </property>
           <property name="iconSize">
@@ -339,7 +320,7 @@
            <string/>
           </property>
           <property name="icon">
-           <iconset resource="../res/vidalia.qrc">
+           <iconset resource="../../vidalia/res/vidalia.qrc">
             <normaloff>:/herdict/herdict/herdict-button-accessible.gif</normaloff>:/herdict/herdict/herdict-button-accessible.gif</iconset>
           </property>
           <property name="iconSize">
@@ -348,6 +329,9 @@
             <height>39</height>
            </size>
           </property>
+          <property name="autoRepeatDelay">
+           <number>301</number>
+          </property>
           <property name="flat">
            <bool>true</bool>
           </property>
@@ -357,12 +341,31 @@
       </item>
      </layout>
     </item>
+    <item row="0" column="0" colspan="2">
+     <widget class="QLabel" name="lblHeaderBackground">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="text">
+       <string/>
+      </property>
+      <property name="pixmap">
+       <pixmap resource="../../vidalia/res/vidalia.qrc">:/herdict/herdict/herdict-header-background.gif</pixmap>
+      </property>
+      <property name="scaledContents">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
     <item row="1" column="1">
      <widget class="QSplitter" name="splitter">
       <property name="orientation">
        <enum>Qt::Horizontal</enum>
       </property>
-      <widget class="QWidget" name="">
+      <widget class="QWidget" name="layoutWidget">
        <layout class="QVBoxLayout" name="verticalLayout">
         <property name="spacing">
          <number>0</number>
@@ -418,7 +421,7 @@
         </item>
        </layout>
       </widget>
-      <widget class="QWidget" name="">
+      <widget class="QWidget" name="layoutWidget">
        <layout class="QVBoxLayout" name="verticalLayout_2">
         <property name="spacing">
          <number>0</number>
@@ -502,7 +505,7 @@
      <string/>
     </property>
     <property name="pixmap">
-     <pixmap resource="../res/vidalia.qrc">:/herdict/herdict/herdict-logo.gif</pixmap>
+     <pixmap resource="../../vidalia/res/vidalia.qrc">:/herdict/herdict/herdict-logo.gif</pixmap>
     </property>
    </widget>
    <widget class="QLabel" name="lblSiteInformation">
@@ -520,8 +523,6 @@
    </widget>
    <zorder>lblHeaderBackground</zorder>
    <zorder>splitter</zorder>
-   <zorder>label</zorder>
-   <zorder>label_2</zorder>
    <zorder>lblSiteInformation</zorder>
    <zorder>lblHerdictLogo</zorder>
   </widget>
@@ -534,6 +535,7 @@
   </customwidget>
  </customwidgets>
  <resources>
+  <include location="../../vidalia/res/vidalia.qrc"/>
   <include location="../res/vidalia.qrc"/>
  </resources>
  <connections/>

Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h	2009-08-04 01:26:05 UTC (rev 4000)
@@ -17,7 +17,7 @@
 #ifndef _HERDICTWEBREPORTERPLUGIN_H
 #define _HERDICTWEBREPORTERPLUGIN_H
 
-#include <vidalia/VidaliaPluginInterface.h>
+#include <plugins/VidaliaPluginInterface.h>
 
 #include <QObject>
 #include <QString>

Added: vidalia/branches/extension-api/src/vidalia/res/herdict/EquifaxSecureCA.crt
===================================================================
--- vidalia/branches/extension-api/src/vidalia/res/herdict/EquifaxSecureCA.crt	                        (rev 0)
+++ vidalia/branches/extension-api/src/vidalia/res/herdict/EquifaxSecureCA.crt	2009-08-04 01:26:05 UTC (rev 4000)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
+MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
+dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
+BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
+cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
+MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
+ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
+IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
+1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----

Modified: vidalia/branches/extension-api/src/vidalia/res/vidalia.qrc
===================================================================
--- vidalia/branches/extension-api/src/vidalia/res/vidalia.qrc	2009-08-04 01:22:34 UTC (rev 3999)
+++ vidalia/branches/extension-api/src/vidalia/res/vidalia.qrc	2009-08-04 01:26:05 UTC (rev 4000)
@@ -295,6 +295,7 @@
         <file>map/world-map.png</file>
     </qresource>
     <qresource prefix="herdict">
+        <file>herdict/EquifaxSecureCA.crt</file>
         <file>herdict/herdict-button-accessible.gif</file>
         <file>herdict/herdict-button-inaccessible.gif</file>
         <file>herdict/herdict-header-background.gif</file>