1/** @file
2  ARC4 Wrapper Implementation which does not provide real capabilities.
3
4Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
5This program and the accompanying materials
6are licensed and made available under the terms and conditions of the BSD License
7which accompanies this distribution.  The full text of the license may be found at
8http://opensource.org/licenses/bsd-license.php
9
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13**/
14
15#include "InternalCryptLib.h"
16
17/**
18  Retrieves the size, in bytes, of the context buffer required for ARC4 operations.
19
20  Return zero to indicate this interface is not supported.
21
22  @retval  0   This interface is not supported.
23
24
25**/
26UINTN
27EFIAPI
28Arc4GetContextSize (
29  VOID
30  )
31{
32  ASSERT (FALSE);
33  return 0;
34}
35
36/**
37  Initializes user-supplied memory as ARC4 context for subsequent use.
38
39  Return FALSE to indicate this interface is not supported.
40
41  @param[out]  Arc4Context  Pointer to ARC4 context being initialized.
42  @param[in]   Key          Pointer to the user-supplied ARC4 key.
43  @param[in]   KeySize      Size of ARC4 key in bytes.
44
45  @retval FALSE  This interface is not supported.
46
47**/
48BOOLEAN
49EFIAPI
50Arc4Init (
51  OUT  VOID         *Arc4Context,
52  IN   CONST UINT8  *Key,
53  IN   UINTN        KeySize
54  )
55{
56  ASSERT (FALSE);
57  return FALSE;
58}
59
60/**
61  Performs ARC4 encryption on a data buffer of the specified size.
62
63  Return FALSE to indicate this interface is not supported.
64
65  @param[in, out]  Arc4Context  Pointer to the ARC4 context.
66  @param[in]       Input        Pointer to the buffer containing the data to be encrypted.
67  @param[in]       InputSize    Size of the Input buffer in bytes.
68  @param[out]      Output       Pointer to a buffer that receives the ARC4 encryption output.
69
70  @retval FALSE  This interface is not supported.
71
72**/
73BOOLEAN
74EFIAPI
75Arc4Encrypt (
76  IN OUT  VOID         *Arc4Context,
77  IN      CONST UINT8  *Input,
78  IN      UINTN        InputSize,
79  OUT     UINT8        *Output
80  )
81{
82  ASSERT (FALSE);
83  return FALSE;
84}
85
86/**
87  Performs ARC4 decryption on a data buffer of the specified size.
88
89  Return FALSE to indicate this interface is not supported.
90
91  @param[in, out]  Arc4Context  Pointer to the ARC4 context.
92  @param[in]       Input        Pointer to the buffer containing the data to be decrypted.
93  @param[in]       InputSize    Size of the Input buffer in bytes.
94  @param[out]      Output       Pointer to a buffer that receives the ARC4 decryption output.
95
96  @retval FALSE  This interface is not supported.
97
98**/
99BOOLEAN
100EFIAPI
101Arc4Decrypt (
102  IN OUT  VOID   *Arc4Context,
103  IN      UINT8  *Input,
104  IN      UINTN  InputSize,
105  OUT     UINT8  *Output
106  )
107{
108  ASSERT (FALSE);
109  return FALSE;
110}
111
112/**
113  Resets the ARC4 context to the initial state.
114
115  Return FALSE to indicate this interface is not supported.
116
117  @param[in, out]  Arc4Context  Pointer to the ARC4 context.
118
119  @retval FALSE  This interface is not supported.
120
121**/
122BOOLEAN
123EFIAPI
124Arc4Reset (
125  IN OUT  VOID  *Arc4Context
126  )
127{
128  ASSERT (FALSE);
129  return FALSE;
130}
131