Browse Source

[3287] Add getter for the fingerprint

Mukund Sivaraman 11 years ago
parent
commit
a99f8f2985

+ 5 - 2
src/lib/dns/rdata/generic/sshfp_44.cc

@@ -14,8 +14,6 @@
 
 #include <config.h>
 
-#include <string>
-
 #include <boost/lexical_cast.hpp>
 
 #include <exceptions/exceptions.h>
@@ -293,6 +291,11 @@ SSHFP::getFingerprintType() const {
     return (impl_->fingerprint_type_);
 }
 
+const std::vector<uint8_t>&
+SSHFP::getFingerprint() const {
+    return (impl_->fingerprint_);
+}
+
 size_t
 SSHFP::getFingerprintLength() const {
     return (impl_->fingerprint_.size());

+ 2 - 0
src/lib/dns/rdata/generic/sshfp_44.h

@@ -17,6 +17,7 @@
 #include <stdint.h>
 
 #include <string>
+#include <vector>
 
 #include <dns/name.h>
 #include <dns/rdata.h>
@@ -45,6 +46,7 @@ public:
     ///
     uint8_t getAlgorithmNumber() const;
     uint8_t getFingerprintType() const;
+    const std::vector<uint8_t>& getFingerprint() const;
     size_t getFingerprintLength() const;
 
 private:

+ 12 - 0
src/lib/dns/tests/rdata_sshfp_unittest.cc

@@ -254,6 +254,18 @@ TEST_F(Rdata_SSHFP_Test, getFingerprintType) {
     EXPECT_EQ(1, rdata_sshfp.getFingerprintType());
 }
 
+TEST_F(Rdata_SSHFP_Test, getFingerprint) {
+    const std::vector<uint8_t>& fingerprint =
+        rdata_sshfp.getFingerprint();
+
+    EXPECT_EQ(rdata_sshfp.getFingerprintLength(),
+              fingerprint.size());
+    for (int i = 0; i < fingerprint.size(); ++i) {
+        EXPECT_EQ(rdata_sshfp_wiredata[i + 2],
+                  fingerprint.at(i));
+    }
+}
+
 TEST_F(Rdata_SSHFP_Test, getFingerprintLength) {
     EXPECT_EQ(20, rdata_sshfp.getFingerprintLength());
 }