aboutsummaryrefslogtreecommitdiffstats
path: root/src/tls/msg_hello_verify.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tls/msg_hello_verify.cpp')
-rw-r--r--src/tls/msg_hello_verify.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/tls/msg_hello_verify.cpp b/src/tls/msg_hello_verify.cpp
deleted file mode 100644
index f8a117c03..000000000
--- a/src/tls/msg_hello_verify.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-* DTLS Hello Verify Request
-* (C) 2012 Jack Lloyd
-*
-* Released under the terms of the Botan license
-*/
-
-#include <botan/internal/tls_messages.h>
-#include <botan/lookup.h>
-#include <memory>
-
-namespace Botan {
-
-namespace TLS {
-
-Hello_Verify_Request::Hello_Verify_Request(const std::vector<byte>& buf)
- {
- if(buf.size() < 3)
- throw Decoding_Error("Hello verify request too small");
-
- Protocol_Version version(buf[0], buf[1]);
-
- if(version != Protocol_Version::DTLS_V10 &&
- version != Protocol_Version::DTLS_V12)
- {
- throw Decoding_Error("Unknown version from server in hello verify request");
- }
-
- if(static_cast<size_t>(buf[2]) + 3 != buf.size())
- throw Decoding_Error("Bad length in hello verify request");
-
- m_cookie.assign(&buf[3], &buf[buf.size()]);
- }
-
-Hello_Verify_Request::Hello_Verify_Request(const std::vector<byte>& client_hello_bits,
- const std::string& client_identity,
- const SymmetricKey& secret_key)
- {
- std::unique_ptr<MessageAuthenticationCode> hmac(get_mac("HMAC(SHA-256)"));
- hmac->set_key(secret_key);
-
- hmac->update_be(client_hello_bits.size());
- hmac->update(client_hello_bits);
- hmac->update_be(client_identity.size());
- hmac->update(client_identity);
-
- m_cookie = unlock(hmac->final());
- }
-
-std::vector<byte> Hello_Verify_Request::serialize() const
- {
- /* DTLS 1.2 server implementations SHOULD use DTLS version 1.0
- regardless of the version of TLS that is expected to be
- negotiated (RFC 6347, section 4.2.1)
- */
-
- Protocol_Version format_version(Protocol_Version::DTLS_V10);
-
- std::vector<byte> bits;
- bits.push_back(format_version.major_version());
- bits.push_back(format_version.minor_version());
- bits.push_back(static_cast<byte>(m_cookie.size()));
- bits += m_cookie;
- return bits;
- }
-
-}
-
-}