summaryrefslogtreecommitdiff
path: root/src/or/routerlist.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-04-14 18:00:38 -0400
committerNick Mathewson <nickm@torproject.org>2014-04-14 18:00:38 -0400
commit149931571a4c5ad9ec24eb6d4306e8965a454211 (patch)
treecf2b4d83a7a5028526e19cf3f3641d813d9c06ba /src/or/routerlist.c
parent47f7085de7a496b6bfa79de9e1b22ca4a28b0f27 (diff)
parent75b4975d7722d9497847fdab8dcfb2ac10f58fdb (diff)
downloadtor-149931571a4c5ad9ec24eb6d4306e8965a454211.tar.gz
tor-149931571a4c5ad9ec24eb6d4306e8965a454211.zip
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Conflicts: src/or/routerlist.h
Diffstat (limited to 'src/or/routerlist.c')
-rw-r--r--src/or/routerlist.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index cb39729ff5..b49dc1ac0b 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -633,6 +633,39 @@ authority_cert_dl_failed(const char *id_digest,
}
}
+static const char *BAD_SIGNING_KEYS[] = {
+ "09CD84F751FD6E955E0F8ADB497D5401470D697E", // Expires 2015-01-11 16:26:31
+// dizum still needs to rotate as of 2014-04-14
+//"0E7E9C07F0969D0468AD741E172A6109DC289F3C", // Expires 2014-08-12 10:18:26
+// dannenberg still needs to rotate as of 2014-04-14
+//"57B85409891D3FB32137F642FDEDF8B7F8CDFDCD", // Expires 2015-02-11 17:19:09
+ "87326329007AF781F587AF5B594E540B2B6C7630", // Expires 2014-07-17 11:10:09
+ "98CC82342DE8D298CF99D3F1A396475901E0D38E", // Expires 2014-11-10 13:18:56
+ "9904B52336713A5ADCB13E4FB14DC919E0D45571", // Expires 2014-04-20 20:01:01
+ "9DCD8E3F1DD1597E2AD476BBA28A1A89F3095227", // Expires 2015-01-16 03:52:30
+ "A61682F34B9BB9694AC98491FE1ABBFE61923941", // Expires 2014-06-11 09:25:09
+ "B59F6E99C575113650C99F1C425BA7B20A8C071D", // Expires 2014-07-31 13:22:10
+ "D27178388FA75B96D37FA36E0B015227DDDBDA51", // Expires 2014-08-04 04:01:57
+ NULL,
+};
+
+/** DOCDOC */
+int
+authority_cert_is_blacklisted(const authority_cert_t *cert)
+{
+ char hex_digest[HEX_DIGEST_LEN+1];
+ int i;
+ base16_encode(hex_digest, sizeof(hex_digest),
+ cert->signing_key_digest, sizeof(cert->signing_key_digest));
+
+ for (i = 0; BAD_SIGNING_KEYS[i]; ++i) {
+ if (!strcasecmp(hex_digest, BAD_SIGNING_KEYS[i])) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
/** Return true iff when we've been getting enough failures when trying to
* download the certificate with ID digest <b>id_digest</b> that we're willing
* to start bugging the user about it. */