diff --git a/include/ndn-cpp/publisher-public-key-digest.hpp b/include/ndn-cpp/publisher-public-key-digest.hpp
index ad60ef4..289e682 100644
--- a/include/ndn-cpp/publisher-public-key-digest.hpp
+++ b/include/ndn-cpp/publisher-public-key-digest.hpp
@@ -44,33 +44,7 @@
   getPublisherPublicKeyDigest() const { return publisherPublicKeyDigest_; }
 
   void 
-  setPublisherPublicKeyDigest(const std::vector<uint8_t>& publisherPublicKeyDigest) 
-  { 
-    publisherPublicKeyDigest_ = publisherPublicKeyDigest; 
-  }
-  
-  void 
-  setPublisherPublicKeyDigest(const uint8_t *publisherPublicKeyDigest, size_t publisherPublicKeyDigestLength) 
-  { 
-    publisherPublicKeyDigest_ = Blob(publisherPublicKeyDigest, publisherPublicKeyDigestLength); 
-  }
-
-  /**
-   * Set the publisher public key digest to point to an existing byte array.  IMPORTANT: After calling this,
-   * if you keep a pointer to the array then you must treat the array as immutable and promise not to change it.
-   * @param signature A pointer to a vector with the byte array.  This takes another reference and does not copy the bytes.
-   */
-  void 
-  setPublisherPublicKeyDigest(const ptr_lib::shared_ptr<std::vector<uint8_t> > &publisherPublicKeyDigest) 
-  { 
-    publisherPublicKeyDigest_ = publisherPublicKeyDigest; 
-  }
-
-  void 
-  setPublisherPublicKeyDigest(const ptr_lib::shared_ptr<const std::vector<uint8_t> > &publisherPublicKeyDigest) 
-  { 
-    publisherPublicKeyDigest_ = publisherPublicKeyDigest; 
-  }
+  setPublisherPublicKeyDigest(const Blob& publisherPublicKeyDigest) { publisherPublicKeyDigest_ = publisherPublicKeyDigest; }
   
   /**
    * Clear the publisherPublicKeyDigest.
