From af55fcdcfb0857a3516f30fb61176ffe9bc31110 Mon Sep 17 00:00:00 2001 From: Anthony Neal Date: Mon, 21 Jan 2002 18:25:23 +0000 Subject: Update of SUDP (Secure UDP) related code. SUDP is still not active, but compiles as is under Linux and Windows. --- cpp/src/Ice/MessageAuthenticator.cpp | 83 ++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 cpp/src/Ice/MessageAuthenticator.cpp (limited to 'cpp/src/Ice/MessageAuthenticator.cpp') diff --git a/cpp/src/Ice/MessageAuthenticator.cpp b/cpp/src/Ice/MessageAuthenticator.cpp new file mode 100644 index 00000000000..7c8763e83dc --- /dev/null +++ b/cpp/src/Ice/MessageAuthenticator.cpp @@ -0,0 +1,83 @@ +// ********************************************************************** +// +// Copyright (c) 2002 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#include + +using Ice::ByteSeq; + +void ::IceInternal::incRef(::IceSecurity::SecureUdp::MessageAuthenticator* p) { p->__incRef(); } +void ::IceInternal::decRef(::IceSecurity::SecureUdp::MessageAuthenticator* p) { p->__decRef(); } + +IceSecurity::SecureUdp::MessageAuthenticator::MessageAuthenticator() +{ + // TODO: Should generate a random MAC key here + int i = 0; + + // Bogus MAC - gotta fix this. + _macKeyBytes[i++] = 2; + _macKeyBytes[i++] = 0; + _macKeyBytes[i++] = 0; + _macKeyBytes[i++] = 2; + _macKeyBytes[i++] = 0; + _macKeyBytes[i++] = 1; + _macKeyBytes[i++] = 1; + _macKeyBytes[i++] = 7; + _macKeyBytes[i++] = 1; + _macKeyBytes[i++] = 0; + _macKeyBytes[i++] = 2; + _macKeyBytes[i++] = 2; +} + +IceSecurity::SecureUdp::MessageAuthenticator::MessageAuthenticator(const ByteSeq& macKey) +{ + _macKeyBytes = macKey; +} + +IceSecurity::SecureUdp::MessageAuthenticator::~MessageAuthenticator() +{ +} + +ByteSeq +IceSecurity::SecureUdp::MessageAuthenticator::computeMAC(const ByteSeq& message) const +{ + // TODO: Should generate a REAL MAC here. + ByteSeq bytes; + int i = 0; + + // Bogus MAC - gotta fix this. + bytes[i++] = 2; + bytes[i++] = 0; + bytes[i++] = 0; + bytes[i++] = 2; + bytes[i++] = 0; + bytes[i++] = 1; + bytes[i++] = 1; + bytes[i++] = 7; + bytes[i++] = 1; + bytes[i++] = 0; + bytes[i++] = 2; + bytes[i++] = 2; + + return bytes; +} + +bool +IceSecurity::SecureUdp::MessageAuthenticator::authenticate(const ByteSeq& message, const ByteSeq& macCode) +{ + ByteSeq targetMAC = computeMAC(message); + return targetMAC == macCode; +} + +const ByteSeq& +IceSecurity::SecureUdp::MessageAuthenticator::getMACKey() const +{ + return _macKeyBytes; +} + -- cgit v1.2.3