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