aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/http
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2020-02-07 20:00:06 +0100
committerMauro Sardara <msardara@cisco.com>2020-02-12 18:40:52 +0100
commit3bce9bfdce707313de4f9cccdc867abd9edf82df (patch)
treebd7d75a7251888a3fc269fadebd59842c46a14a1 /libtransport/src/hicn/transport/http
parentf9243a2bf823086404be1c41c7bcc1b27cfab7de (diff)
[HICN-508] [HICN-509] [HICN-506] Manifest rework
Change-Id: I992205148910be008d66b5acb7f6f1365770f9e8 Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/http')
-rw-r--r--libtransport/src/hicn/transport/http/client_connection.cc18
-rw-r--r--libtransport/src/hicn/transport/http/client_connection.h7
2 files changed, 25 insertions, 0 deletions
diff --git a/libtransport/src/hicn/transport/http/client_connection.cc b/libtransport/src/hicn/transport/http/client_connection.cc
index 32269d49d..aa9cb0463 100644
--- a/libtransport/src/hicn/transport/http/client_connection.cc
+++ b/libtransport/src/hicn/transport/http/client_connection.cc
@@ -16,6 +16,8 @@
#include <hicn/transport/http/client_connection.h>
#include <hicn/transport/utils/hash.h>
+#include <fstream>
+
#define DEFAULT_BETA 0.99
#define DEFAULT_GAMMA 0.07
@@ -38,6 +40,12 @@ HTTPClientConnection::HTTPClientConnection()
std::placeholders::_2));
consumer_.setSocketOption(ConsumerCallbacksOptions::READ_CALLBACK, this);
+ consumer_.setSocketOption(
+ ConsumerCallbacksOptions::VERIFICATION_FAILED,
+ (ConsumerContentObjectVerificationFailedCallback)std::bind(
+ &HTTPClientConnection::onSignatureVerificationFailed, this,
+ std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
+ consumer_.setSocketOption(GeneralTransportOptions::VERIFY_SIGNATURE, false);
consumer_.connect();
std::shared_ptr<typename ConsumerSocket::Portal> portal;
@@ -87,6 +95,10 @@ HTTPClientConnection::RC HTTPClientConnection::sendRequest(
return return_code_;
}
+void HTTPClientConnection::verifyPacketSignature(bool verify) {
+ consumer_.setSocketOption(GeneralTransportOptions::VERIFY_SIGNATURE, verify);
+}
+
void HTTPClientConnection::sendRequestGetReply(
const HTTPRequest &request, std::shared_ptr<HTTPResponse> &response,
std::string &ipv6_first_word) {
@@ -186,6 +198,12 @@ HTTPClientConnection &HTTPClientConnection::setCertificate(
return *this;
}
+VerificationPolicy HTTPClientConnection::onSignatureVerificationFailed(
+ ConsumerSocket &consumer, const core::ContentObject &content_object,
+ std::error_code reason) {
+ return VerificationPolicy::ACCEPT_PACKET;
+}
+
// Read buffer management
void HTTPClientConnection::readBufferAvailable(
std::unique_ptr<utils::MemBuf> &&buffer) noexcept {
diff --git a/libtransport/src/hicn/transport/http/client_connection.h b/libtransport/src/hicn/transport/http/client_connection.h
index 5bcf9c4c7..e001653ab 100644
--- a/libtransport/src/hicn/transport/http/client_connection.h
+++ b/libtransport/src/hicn/transport/http/client_connection.h
@@ -20,6 +20,7 @@
#include <hicn/transport/http/response.h>
#include <hicn/transport/interfaces/socket_consumer.h>
#include <hicn/transport/interfaces/socket_producer.h>
+#include <hicn/transport/interfaces/verification_policy.h>
#include <hicn/transport/utils/uri.h>
#include <vector>
@@ -68,6 +69,8 @@ class HTTPClientConnection : public ConsumerSocket::ReadCallback {
HTTPClientConnection &setCertificate(const std::string &cert_path);
+ void verifyPacketSignature(bool verify);
+
private:
void sendRequestGetReply(const HTTPRequest &request,
std::shared_ptr<HTTPResponse> &response,
@@ -80,6 +83,10 @@ class HTTPClientConnection : public ConsumerSocket::ReadCallback {
const core::Interest &interest,
std::string &payload);
+ VerificationPolicy onSignatureVerificationFailed(
+ ConsumerSocket &consumer, const core::ContentObject &content_object,
+ std::error_code reason);
+
// Read callback
bool isBufferMovable() noexcept override { return true; }
void getReadBuffer(uint8_t **application_buffer,