SecurityPkg: Add UEFI-2.5 PKCS7 Verification Protocol Support
[mirror_edk2.git] / CryptoPkg / Library / BaseCryptLib / Pk / CryptX509Null.c
1 /** @file
2 X.509 Certificate Handler Wrapper Implementation which does not provide
3 real capabilities.
4
5 Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #include "InternalCryptLib.h"
17
18 /**
19 Construct a X509 object from DER-encoded certificate data.
20
21 Return FALSE to indicate this interface is not supported.
22
23 @param[in] Cert Pointer to the DER-encoded certificate data.
24 @param[in] CertSize The size of certificate data in bytes.
25 @param[out] SingleX509Cert The generated X509 object.
26
27 @retval FALSE This interface is not supported.
28
29 **/
30 BOOLEAN
31 EFIAPI
32 X509ConstructCertificate (
33 IN CONST UINT8 *Cert,
34 IN UINTN CertSize,
35 OUT UINT8 **SingleX509Cert
36 )
37 {
38 ASSERT (FALSE);
39 return FALSE;
40 }
41
42 /**
43 Construct a X509 stack object from a list of DER-encoded certificate data.
44
45 Return FALSE to indicate this interface is not supported.
46
47 @param[in, out] X509Stack On input, pointer to an existing X509 stack object.
48 On output, pointer to the X509 stack object with new
49 inserted X509 certificate.
50 @param ... A list of DER-encoded single certificate data followed
51 by certificate size. A NULL terminates the list. The
52 pairs are the arguments to X509ConstructCertificate().
53
54 @retval FALSE This interface is not supported.
55
56 **/
57 BOOLEAN
58 EFIAPI
59 X509ConstructCertificateStack (
60 IN OUT UINT8 **X509Stack,
61 ...
62 )
63 {
64 ASSERT (FALSE);
65 return FALSE;
66 }
67
68 /**
69 Release the specified X509 object.
70
71 If the interface is not supported, then ASSERT().
72
73 @param[in] X509Cert Pointer to the X509 object to be released.
74
75 **/
76 VOID
77 EFIAPI
78 X509Free (
79 IN VOID *X509Cert
80 )
81 {
82 ASSERT (FALSE);
83 }
84
85 /**
86 Release the specified X509 stack object.
87
88 If the interface is not supported, then ASSERT().
89
90 @param[in] X509Stack Pointer to the X509 stack object to be released.
91
92 **/
93 VOID
94 EFIAPI
95 X509StackFree (
96 IN VOID *X509Stack
97 )
98 {
99 ASSERT (FALSE);
100 }
101
102 /**
103 Retrieve the subject bytes from one X.509 certificate.
104
105 Return FALSE to indicate this interface is not supported.
106
107 @param[in] Cert Pointer to the DER-encoded X509 certificate.
108 @param[in] CertSize Size of the X509 certificate in bytes.
109 @param[out] CertSubject Pointer to the retrieved certificate subject bytes.
110 @param[in, out] SubjectSize The size in bytes of the CertSubject buffer on input,
111 and the size of buffer returned CertSubject on output.
112
113
114 @retval FALSE This interface is not supported.
115
116 **/
117 BOOLEAN
118 EFIAPI
119 X509GetSubjectName (
120 IN CONST UINT8 *Cert,
121 IN UINTN CertSize,
122 OUT UINT8 *CertSubject,
123 IN OUT UINTN *SubjectSize
124 )
125 {
126 ASSERT (FALSE);
127 return FALSE;
128 }
129
130 /**
131 Retrieve the RSA Public Key from one DER-encoded X509 certificate.
132
133 Return FALSE to indicate this interface is not supported.
134
135 @param[in] Cert Pointer to the DER-encoded X509 certificate.
136 @param[in] CertSize Size of the X509 certificate in bytes.
137 @param[out] RsaContext Pointer to new-generated RSA context which contain the retrieved
138 RSA public key component. Use RsaFree() function to free the
139 resource.
140
141 @retval FALSE This interface is not supported.
142
143 **/
144 BOOLEAN
145 EFIAPI
146 RsaGetPublicKeyFromX509 (
147 IN CONST UINT8 *Cert,
148 IN UINTN CertSize,
149 OUT VOID **RsaContext
150 )
151 {
152 ASSERT (FALSE);
153 return FALSE;
154 }
155
156 /**
157 Verify one X509 certificate was issued by the trusted CA.
158
159 Return FALSE to indicate this interface is not supported.
160
161 @param[in] Cert Pointer to the DER-encoded X509 certificate to be verified.
162 @param[in] CertSize Size of the X509 certificate in bytes.
163 @param[in] CACert Pointer to the DER-encoded trusted CA certificate.
164 @param[in] CACertSize Size of the CA Certificate in bytes.
165
166 @retval FALSE This interface is not supported.
167
168 **/
169 BOOLEAN
170 EFIAPI
171 X509VerifyCert (
172 IN CONST UINT8 *Cert,
173 IN UINTN CertSize,
174 IN CONST UINT8 *CACert,
175 IN UINTN CACertSize
176 )
177 {
178 ASSERT (FALSE);
179 return FALSE;
180 }
181
182 /**
183 Retrieve the TBSCertificate from one given X.509 certificate.
184
185 Return FALSE to indicate this interface is not supported.
186
187 @param[in] Cert Pointer to the given DER-encoded X509 certificate.
188 @param[in] CertSize Size of the X509 certificate in bytes.
189 @param[out] TBSCert DER-Encoded To-Be-Signed certificate.
190 @param[out] TBSCertSize Size of the TBS certificate in bytes.
191
192 @retval FALSE This interface is not supported.
193
194 **/
195 BOOLEAN
196 EFIAPI
197 X509GetTBSCert (
198 IN CONST UINT8 *Cert,
199 IN UINTN CertSize,
200 OUT UINT8 **TBSCert,
201 OUT UINTN *TBSCertSize
202 )
203 {
204 ASSERT (FALSE);
205 return FALSE;
206 }