Probe: add probe token to New and Challenge
Change-Id: Iae8b009bb2e78f03910e53fb49e750ebc8a6e6ae
diff --git a/src/challenge-module/challenge-email.cpp b/src/challenge-module/challenge-email.cpp
index 8c49726..793eed7 100644
--- a/src/challenge-module/challenge-email.cpp
+++ b/src/challenge-module/challenge-email.cpp
@@ -19,6 +19,7 @@
*/
#include "challenge-email.hpp"
+#include "../ca-module.hpp"
#include "../logging.hpp"
#include <regex>
@@ -57,6 +58,16 @@
request.m_challengeStatus = FAILURE_INVALID_EMAIL;
return;
}
+ // check whether this email is the same as the one used in PROBE
+ if (request.m_probeToken != nullptr) {
+ const auto& content = request.m_probeToken->getContent();
+ const auto& json = CaModule::jsonFromBlock(content);
+ const auto& expectedEmail = json.get("email", "");
+ Name expectedPrefix(json.get(JSON_CA_NAME, ""));
+ if (expectedEmail != emailAddress || !expectedPrefix.isPrefixOf(request.m_cert.getName())) {
+ return;
+ }
+ }
request.m_status = STATUS_CHALLENGE;
request.m_challengeStatus = NEED_CODE;
request.m_challengeType = CHALLENGE_TYPE;