Blob Blame History Raw
diff -Naur opendnssec-1.4.0b1-orig/signer/src/signer/rrset.c opendnssec-1.4.0b1/signer/src/signer/rrset.c
--- opendnssec-1.4.0b1-orig/signer/src/signer/rrset.c	2012-08-28 10:00:54.000000000 -0400
+++ opendnssec-1.4.0b1/signer/src/signer/rrset.c	2012-11-10 17:16:44.250226281 -0500
@@ -32,6 +32,7 @@
  */
 
 #include "config.h"
+#include "shared/file.h"
 #include "shared/hsm.h"
 #include "shared/log.h"
 #include "shared/util.h"
@@ -557,6 +558,26 @@
 
 
 /**
+ * Is the RRset signed with this locator?
+ *
+ */
+static int
+rrset_siglocator(rrset_type* rrset, const char* locator)
+{
+    size_t i = 0;
+    if (!rrset) {
+        return 0;
+    }
+    for (i=0; i < rrset->rrsig_count; i++) {
+        if (!ods_strcmp(locator, rrset->rrsigs[i].key_locator)) {
+            return 1;
+        }
+    }
+    return 0;
+}
+
+
+/**
  * Transmogrify the RRset to a RRlist.
  *
  */
@@ -702,6 +723,9 @@
             continue;
         }
         /* Additional rules for signatures */
+        if (rrset_siglocator(rrset, zone->signconf->keys->keys[i].locator)) {
+            continue;
+        }
         if (rrset_sigalgo(rrset, zone->signconf->keys->keys[i].algorithm)) {
             continue;
         }