From feb4468a25098d4ed8ba745c1c1d07e5c4fa9402 Mon Sep 17 00:00:00 2001 From: crotsos Date: Fri, 28 Dec 2012 14:03:17 +0200 Subject: [PATCH] merging --- lib/packet.ml | 2 ++ lib_test/load_key.ml | 27 ++++++++++++++++++++++++--- lib_test/rsa-sha256-test.private | 2 +- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/packet.ml b/lib/packet.ml index 6c8c0ed4f..9439cf1d6 100644 --- a/lib/packet.ml +++ b/lib/packet.ml @@ -843,6 +843,8 @@ let parse_rdata names base t cls ttl buf = ISDN (a, sa) | RR_MB -> MB (buf |> parse_name names base |> stop) + | RR_MD -> MD (buf |> parse_name names base |> stop) + | RR_MF -> MF (buf |> parse_name names base |> stop) | RR_MG -> MG (buf |> parse_name names base |> stop) diff --git a/lib_test/load_key.ml b/lib_test/load_key.ml index cf206083b..1f3d5eedf 100644 --- a/lib_test/load_key.ml +++ b/lib_test/load_key.ml @@ -6,7 +6,7 @@ open Lwt (* replicate examples from rfc 5702 *) lwt _ = - let (alg, key) = Sec.load_rsa_key "lib_test/rsa-sha256-test.private" in +(* let (alg, key) = Sec.load_rsa_key "lib_test/rsa-sha256-test.private" in let rr = {name=(string_to_domain_name "www.example.net."); cls=RR_IN; ttl=3600l; rdata=(A (Uri_IP.string_to_ipv4 "192.0.2.91"));} in @@ -64,10 +64,12 @@ lwt _ = );{id = 3740 (zsk), size = 1024b} *) +*) let _ = printf "\n\n---------------Test resolver---------------\n%!" in lwt resolver = Dns_resolver.create () in lwt st = Sec.init_dnssec ~resolver:(Some resolver) () in + let (alg, key) = Sec.load_rsa_key "lib_test/rsa-sha256-test.private" in lwt p = Dns_resolver.resolve resolver Q_IN Q_DNSKEY (string_to_domain_name ".") in @@ -78,8 +80,27 @@ lwt _ = add_root_dnskey tl in let _ = add_root_dnskey p.answers in - lwt p = Sec.resolve st Q_IN Q_SOA + lwt p = Sec.resolve st + ~sig0:(Some(alg,9030, key, + (Dns.Name.string_to_domain_name "d1.signpo.st"))) + Q_IN Q_A (string_to_domain_name "www.nlnetlabs.nl.") in - let _ = printf "verifying %s\n%!" (Sec.dnssec_result_to_string p) in + let _ = printf "verifying %s\n%!" (Sec.dnssec_result_to_string p) in + + let rr = {name=(string_to_domain_name "www.example.net."); + cls=RR_IN; ttl=3600l; + rdata=(A (Uri_IP.string_to_ipv4 "192.0.2.91"));} in + let pkt = Dns_resolver.build_query Q_IN Q_MX + (Dns.Name.string_to_domain_name "d3.signpo.st") in + let pkt = Sec.sign_packet ~inception:(1352893409l) + ~expiration:(1352893709l) alg key 9030 + ["sp"] pkt in + + let dnskey = Sec.get_dnskey_rr alg key in + let _ = Sec.add_anchor st {name=["sp"];ttl=0l; cls=Dns.Packet.RR_IN; + rdata=dnskey;} in + let _ = printf "sending: %s\n%!" (Dns.Packet.to_string pkt) in + lwt res = Sec.verify_packet st pkt in + let _ = printf "verification res %s\n%!" (string_of_bool res) in return (printf "Key loaded successfully.\n%!") diff --git a/lib_test/rsa-sha256-test.private b/lib_test/rsa-sha256-test.private index f7dac385e..69d8aedf2 100644 --- a/lib_test/rsa-sha256-test.private +++ b/lib_test/rsa-sha256-test.private @@ -1,5 +1,5 @@ Private-key-format: v1.2 -Algorithm: 8 (RSASHA256) +Algorithm: 5 (RSASHA1) Modulus: wVwaxrHF2CK64aYKRUibLiH30KpPuPBjel7E8ZydQW1HYWHfoGmidzC2RnhwCC293hCzw+TFR2nqn8OVSY5t2Q== PublicExponent: AQAB PrivateExponent: UR44xX6zB3eaeyvTRzmskHADrPCmPWnr8dxsNwiDGHzrMKLN+i/HAam+97HxIKVWNDH2ba9Mf1SA8xu9dcHZAQ==