diff --git a/src/encryptor.cpp b/src/encryptor.cpp
index 0472e1e..eb6c486 100644
--- a/src/encryptor.cpp
+++ b/src/encryptor.cpp
@@ -153,7 +153,9 @@
                              m_kekPendingInterest = nullptr;
                              // @todo verify if the key is legit
                              m_kek = kek;
-                             makeAndPublishCkData(onFailure);
+                             if (makeAndPublishCkData(onFailure)) {
+                               onReady();
+                             }
                              // otherwise, failure has been already declared
                            },
                            [=] (const Interest& i, const lp::Nack& nack) {
@@ -189,7 +191,7 @@
                            });
 }
 
-void
+bool
 Encryptor::makeAndPublishCkData(const ErrorCallback& onFailure)
 {
   try {
@@ -207,9 +209,11 @@
     m_ims.insert(*ckData);
 
     NDN_LOG_DEBUG("Publishing CK data: " << ckData->getName());
+    return true;
   }
   catch (const std::runtime_error& error) {
     onFailure(ErrorCode::EncryptionFailure, "Failed to encrypt generated CK with KEK " + m_kek->getName().toUri());
+    return false;
   }
 }
 
diff --git a/src/encryptor.hpp b/src/encryptor.hpp
index 34d69bb..2b82d31 100644
--- a/src/encryptor.hpp
+++ b/src/encryptor.hpp
@@ -124,10 +124,10 @@
                            const ErrorCallback& onFailure,
                            size_t nTriesLeft);
 
-  void
+  bool
   makeAndPublishCkData(const ErrorCallback& onFailure);
 
-private:
+PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   Name m_accessPrefix;
   Name m_ckPrefix;
   Name m_ckName;
