1 /** @file
2   ARC4 Wrapper Implementation which does not provide real capabilities.
3 
4 Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution.  The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT 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 **/
26 UINTN
27 EFIAPI
Arc4GetContextSize(VOID)28 Arc4GetContextSize (
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 **/
48 BOOLEAN
49 EFIAPI
Arc4Init(OUT VOID * Arc4Context,IN CONST UINT8 * Key,IN UINTN KeySize)50 Arc4Init (
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 **/
73 BOOLEAN
74 EFIAPI
Arc4Encrypt(IN OUT VOID * Arc4Context,IN CONST UINT8 * Input,IN UINTN InputSize,OUT UINT8 * Output)75 Arc4Encrypt (
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 **/
99 BOOLEAN
100 EFIAPI
Arc4Decrypt(IN OUT VOID * Arc4Context,IN UINT8 * Input,IN UINTN InputSize,OUT UINT8 * Output)101 Arc4Decrypt (
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 **/
122 BOOLEAN
123 EFIAPI
Arc4Reset(IN OUT VOID * Arc4Context)124 Arc4Reset (
125   IN OUT  VOID  *Arc4Context
126   )
127 {
128   ASSERT (FALSE);
129   return FALSE;
130 }
131