+ return;
+ }
+ else if (!strcmp("hash", in.name())) {
+#ifndef SHIBSP_LITE
+ const char* hashAlg = in["alg"].string();
+ const char* data = in["data"].string();
+ if (!hashAlg || !*hashAlg || !data || !*data)
+ throw ListenerException("Hash request missing algorithm or data parameters.");
+ DDF outmsg(nullptr);
+ DDFJanitor jan(outmsg);
+ outmsg.string(SecurityHelper::doHash(hashAlg, data, strlen(data)).c_str());
+ out << outmsg;
+ return;
+#else
+ throw ListenerException("Hash algorithms unavailable in lite build of library.");
+#endif