- added signature check
authorMatthias Wachs <wachs@net.in.tum.de>
Thu, 1 Mar 2012 18:24:07 +0000 (18:24 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Thu, 1 Mar 2012 18:24:07 +0000 (18:24 +0000)
src/namestore/test_namestore_api_create.c

index 8566959b2425f4d6cb47e777777c564c06e0ab60..b0b3c3bf95027cd50bf04fb4bc2da5689b69504e 100644 (file)
@@ -48,6 +48,7 @@ static struct GNUNET_OS_Process *arm;
 static struct GNUNET_CRYPTO_RsaPrivateKey * privkey;
 static struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey;
 struct GNUNET_CRYPTO_RsaSignature *s_signature;
+struct GNUNET_CRYPTO_RsaSignature *s_signature_updated;
 static GNUNET_HashCode s_zone;
 struct GNUNET_NAMESTORE_RecordData *s_rd;
 struct GNUNET_NAMESTORE_RecordData *s_create_rd;
@@ -204,6 +205,20 @@ void name_lookup_proc (void *cls,
       failed = GNUNET_YES;
     }
 
+    struct GNUNET_NAMESTORE_RecordData rd_new[RECORDS +1];
+    int c2;
+    for (c2 = 0; c2 < RECORDS; c2++)
+      rd_new[c2] = s_rd[c2];
+    rd_new[c2] = *s_create_rd;
+    s_signature_updated = GNUNET_NAMESTORE_create_signature(privkey, n, rd_new, RECORDS +1);
+
+    if (0 != memcmp (s_signature_updated, signature, sizeof (struct GNUNET_CRYPTO_RsaSignature)))
+    {
+      GNUNET_break (0);
+      failed = GNUNET_YES;
+    }
+    GNUNET_free (s_signature_updated);
+
     found = GNUNET_YES;
     if (failed == GNUNET_NO)
       res = 0;