windows-nt/Source/XPSP1/NT/net/tcpip/tpipv6/tcpip6/algrthms/null.c
2020-09-26 16:20:57 +08:00

94 lines
2.3 KiB
C

// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs)
//
// Copyright (c) 1985-2000 Microsoft Corporation
//
// This file is part of the Microsoft Research IPv6 Network Protocol Stack.
// You should have received a copy of the Microsoft End-User License Agreement
// for this software along with this release; see the file "license.txt".
// If not, please see http://www.research.microsoft.com/msripv6/license.htm,
// or write to Microsoft Research, One Microsoft Way, Redmond, WA 98052-6399.
//
// Abstract:
//
// Null authentication algorithm. For test purposes.
//
#include "oscfg.h"
#include "ndis.h"
#include "ip6imp.h"
#include "ip6def.h"
#include "ipsec.h"
#include "security.h"
#include "null.h"
//* NullKeyPrep - preprocess raw keying data into directly usuable form.
//
// This routine is called to convert raw keying information into the most
// convienient form for later processing. For the null algorithm, we just
// return 128 zero bytes.
//
void
NullKeyPrep(
uchar *RawKey, // Raw keying information.
uint RawKeySize, // Size of above in bytes.
uchar *Key) // Resulting 128 bytes of preprocessed key info.
{
//
// Zero key size bytes at the location designated by our caller.
//
memset(Key, 0, NULL_KEY_SIZE);
}
//* NullInit - prepare to process data.
//
// We don't need to maintain any context in order to do nothing, so
// this isn't very exciting.
//
void
NullInit(
void *Context, // Context info maintained across operations.
uchar *Key) // Keying information.
{
//
// Just to test the code a bit, zero the context field.
//
memset(Context, 0, NULL_CONTEXT_SIZE);
}
//* NullOp - Process a chunk of data.
//
// NullOp is a No-Op.
//
void
NullOp(
void *Context, // Context info maintained across operations.
uchar *Key, // Keying information.
uchar *Data, // Data to process.
uint Len) // Amount of above in bytes.
{
}
//* NullFinal - close off processing current data and return result.
//
// Our result is always zero.
//
void
NullFinal(
void *Context, // Context info maintained across operations.
uchar *Key, // Keying information.
uchar *Result) // Where to put result of this process.
{
//
// Zero result size bytes at the location designated by our caller.
//
memset(Result, 0, NULL_RESULT_SIZE);
}