]> git.proxmox.com Git - mirror_edk2.git/blob - CryptoPkg/Library/TlsLibNull/TlsConfigNull.c
CryptoPkg/OpensslLib: Add native instruction support for IA32
[mirror_edk2.git] / CryptoPkg / Library / TlsLibNull / TlsConfigNull.c
1 /** @file
2 SSL/TLS Configuration Null Library Wrapper Implementation.
3
4 Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #include "InternalTlsLib.h"
11
12 /**
13 Set a new TLS/SSL method for a particular TLS object.
14
15 This function sets a new TLS/SSL method for a particular TLS object.
16
17 @param[in] Tls Pointer to a TLS object.
18 @param[in] MajorVer Major Version of TLS/SSL Protocol.
19 @param[in] MinorVer Minor Version of TLS/SSL Protocol.
20
21 @retval EFI_SUCCESS The TLS/SSL method was set successfully.
22 @retval EFI_INVALID_PARAMETER The parameter is invalid.
23 @retval EFI_UNSUPPORTED Unsupported TLS/SSL method.
24
25 **/
26 EFI_STATUS
27 EFIAPI
28 TlsSetVersion (
29 IN VOID *Tls,
30 IN UINT8 MajorVer,
31 IN UINT8 MinorVer
32 )
33 {
34 ASSERT (FALSE);
35 return EFI_UNSUPPORTED;
36 }
37
38 /**
39 Set TLS object to work in client or server mode.
40
41 This function prepares a TLS object to work in client or server mode.
42
43 @param[in] Tls Pointer to a TLS object.
44 @param[in] IsServer Work in server mode.
45
46 @retval EFI_SUCCESS The TLS/SSL work mode was set successfully.
47 @retval EFI_INVALID_PARAMETER The parameter is invalid.
48 @retval EFI_UNSUPPORTED Unsupported TLS/SSL work mode.
49
50 **/
51 EFI_STATUS
52 EFIAPI
53 TlsSetConnectionEnd (
54 IN VOID *Tls,
55 IN BOOLEAN IsServer
56 )
57 {
58 ASSERT (FALSE);
59 return EFI_UNSUPPORTED;
60 }
61
62 /**
63 Set the ciphers list to be used by the TLS object.
64
65 This function sets the ciphers for use by a specified TLS object.
66
67 @param[in] Tls Pointer to a TLS object.
68 @param[in] CipherId Array of UINT16 cipher identifiers. Each UINT16
69 cipher identifier comes from the TLS Cipher Suite
70 Registry of the IANA, interpreting Byte1 and Byte2
71 in network (big endian) byte order.
72 @param[in] CipherNum The number of cipher in the list.
73
74 @retval EFI_SUCCESS The ciphers list was set successfully.
75 @retval EFI_INVALID_PARAMETER The parameter is invalid.
76 @retval EFI_UNSUPPORTED No supported TLS cipher was found in CipherId.
77 @retval EFI_OUT_OF_RESOURCES Memory allocation failed.
78
79 **/
80 EFI_STATUS
81 EFIAPI
82 TlsSetCipherList (
83 IN VOID *Tls,
84 IN UINT16 *CipherId,
85 IN UINTN CipherNum
86 )
87 {
88 ASSERT (FALSE);
89 return EFI_UNSUPPORTED;
90 }
91
92 /**
93 Set the compression method for TLS/SSL operations.
94
95 This function handles TLS/SSL integrated compression methods.
96
97 @param[in] CompMethod The compression method ID.
98
99 @retval EFI_SUCCESS The compression method for the communication was
100 set successfully.
101 @retval EFI_UNSUPPORTED Unsupported compression method.
102
103 **/
104 EFI_STATUS
105 EFIAPI
106 TlsSetCompressionMethod (
107 IN UINT8 CompMethod
108 )
109 {
110 ASSERT (FALSE);
111 return EFI_UNSUPPORTED;
112 }
113
114 /**
115 Set peer certificate verification mode for the TLS connection.
116
117 This function sets the verification mode flags for the TLS connection.
118
119 @param[in] Tls Pointer to the TLS object.
120 @param[in] VerifyMode A set of logically or'ed verification mode flags.
121
122 **/
123 VOID
124 EFIAPI
125 TlsSetVerify (
126 IN VOID *Tls,
127 IN UINT32 VerifyMode
128 )
129 {
130 ASSERT (FALSE);
131 }
132
133 /**
134 Set the specified host name to be verified.
135
136 @param[in] Tls Pointer to the TLS object.
137 @param[in] Flags The setting flags during the validation.
138 @param[in] HostName The specified host name to be verified.
139
140 @retval EFI_SUCCESS The HostName setting was set successfully.
141 @retval EFI_INVALID_PARAMETER The parameter is invalid.
142 @retval EFI_ABORTED Invalid HostName setting.
143
144 **/
145 EFI_STATUS
146 EFIAPI
147 TlsSetVerifyHost (
148 IN VOID *Tls,
149 IN UINT32 Flags,
150 IN CHAR8 *HostName
151 )
152 {
153 ASSERT (FALSE);
154 return EFI_UNSUPPORTED;
155 }
156
157 /**
158 Sets a TLS/SSL session ID to be used during TLS/SSL connect.
159
160 This function sets a session ID to be used when the TLS/SSL connection is
161 to be established.
162
163 @param[in] Tls Pointer to the TLS object.
164 @param[in] SessionId Session ID data used for session resumption.
165 @param[in] SessionIdLen Length of Session ID in bytes.
166
167 @retval EFI_SUCCESS Session ID was set successfully.
168 @retval EFI_INVALID_PARAMETER The parameter is invalid.
169 @retval EFI_UNSUPPORTED No available session for ID setting.
170
171 **/
172 EFI_STATUS
173 EFIAPI
174 TlsSetSessionId (
175 IN VOID *Tls,
176 IN UINT8 *SessionId,
177 IN UINT16 SessionIdLen
178 )
179 {
180 ASSERT (FALSE);
181 return EFI_UNSUPPORTED;
182 }
183
184 /**
185 Adds the CA to the cert store when requesting Server or Client authentication.
186
187 This function adds the CA certificate to the list of CAs when requesting
188 Server or Client authentication for the chosen TLS connection.
189
190 @param[in] Tls Pointer to the TLS object.
191 @param[in] Data Pointer to the data buffer of a DER-encoded binary
192 X.509 certificate or PEM-encoded X.509 certificate.
193 @param[in] DataSize The size of data buffer in bytes.
194
195 @retval EFI_SUCCESS The operation succeeded.
196 @retval EFI_INVALID_PARAMETER The parameter is invalid.
197 @retval EFI_OUT_OF_RESOURCES Required resources could not be allocated.
198 @retval EFI_ABORTED Invalid X.509 certificate.
199
200 **/
201 EFI_STATUS
202 EFIAPI
203 TlsSetCaCertificate (
204 IN VOID *Tls,
205 IN VOID *Data,
206 IN UINTN DataSize
207 )
208 {
209 ASSERT (FALSE);
210 return EFI_UNSUPPORTED;
211 }
212
213 /**
214 Loads the local public certificate into the specified TLS object.
215
216 This function loads the X.509 certificate into the specified TLS object
217 for TLS negotiation.
218
219 @param[in] Tls Pointer to the TLS object.
220 @param[in] Data Pointer to the data buffer of a DER-encoded binary
221 X.509 certificate or PEM-encoded X.509 certificate.
222 @param[in] DataSize The size of data buffer in bytes.
223
224 @retval EFI_SUCCESS The operation succeeded.
225 @retval EFI_INVALID_PARAMETER The parameter is invalid.
226 @retval EFI_OUT_OF_RESOURCES Required resources could not be allocated.
227 @retval EFI_ABORTED Invalid X.509 certificate.
228
229 **/
230 EFI_STATUS
231 EFIAPI
232 TlsSetHostPublicCert (
233 IN VOID *Tls,
234 IN VOID *Data,
235 IN UINTN DataSize
236 )
237 {
238 ASSERT (FALSE);
239 return EFI_UNSUPPORTED;
240 }
241
242 /**
243 Adds the local private key to the specified TLS object.
244
245 This function adds the local private key (PEM-encoded RSA or PKCS#8 private
246 key) into the specified TLS object for TLS negotiation.
247
248 @param[in] Tls Pointer to the TLS object.
249 @param[in] Data Pointer to the data buffer of a PEM-encoded RSA
250 or PKCS#8 private key.
251 @param[in] DataSize The size of data buffer in bytes.
252
253 @retval EFI_SUCCESS The operation succeeded.
254 @retval EFI_UNSUPPORTED This function is not supported.
255 @retval EFI_ABORTED Invalid private key data.
256
257 **/
258 EFI_STATUS
259 EFIAPI
260 TlsSetHostPrivateKey (
261 IN VOID *Tls,
262 IN VOID *Data,
263 IN UINTN DataSize
264 )
265 {
266 ASSERT (FALSE);
267 return EFI_UNSUPPORTED;
268 }
269
270 /**
271 Adds the CA-supplied certificate revocation list for certificate validation.
272
273 This function adds the CA-supplied certificate revocation list data for
274 certificate validity checking.
275
276 @param[in] Data Pointer to the data buffer of a DER-encoded CRL data.
277 @param[in] DataSize The size of data buffer in bytes.
278
279 @retval EFI_SUCCESS The operation succeeded.
280 @retval EFI_UNSUPPORTED This function is not supported.
281 @retval EFI_ABORTED Invalid CRL data.
282
283 **/
284 EFI_STATUS
285 EFIAPI
286 TlsSetCertRevocationList (
287 IN VOID *Data,
288 IN UINTN DataSize
289 )
290 {
291 ASSERT (FALSE);
292 return EFI_UNSUPPORTED;
293 }
294
295 /**
296 Gets the protocol version used by the specified TLS connection.
297
298 This function returns the protocol version used by the specified TLS
299 connection.
300
301 If Tls is NULL, then ASSERT().
302
303 @param[in] Tls Pointer to the TLS object.
304
305 @return The protocol version of the specified TLS connection.
306
307 **/
308 UINT16
309 EFIAPI
310 TlsGetVersion (
311 IN VOID *Tls
312 )
313 {
314 ASSERT (FALSE);
315 return 0;
316 }
317
318 /**
319 Gets the connection end of the specified TLS connection.
320
321 This function returns the connection end (as client or as server) used by
322 the specified TLS connection.
323
324 If Tls is NULL, then ASSERT().
325
326 @param[in] Tls Pointer to the TLS object.
327
328 @return The connection end used by the specified TLS connection.
329
330 **/
331 UINT8
332 EFIAPI
333 TlsGetConnectionEnd (
334 IN VOID *Tls
335 )
336 {
337 ASSERT (FALSE);
338 return 0;
339 }
340
341 /**
342 Gets the cipher suite used by the specified TLS connection.
343
344 This function returns current cipher suite used by the specified
345 TLS connection.
346
347 @param[in] Tls Pointer to the TLS object.
348 @param[in,out] CipherId The cipher suite used by the TLS object.
349
350 @retval EFI_SUCCESS The cipher suite was returned successfully.
351 @retval EFI_INVALID_PARAMETER The parameter is invalid.
352 @retval EFI_UNSUPPORTED Unsupported cipher suite.
353
354 **/
355 EFI_STATUS
356 EFIAPI
357 TlsGetCurrentCipher (
358 IN VOID *Tls,
359 IN OUT UINT16 *CipherId
360 )
361 {
362 ASSERT (FALSE);
363 return EFI_UNSUPPORTED;
364 }
365
366 /**
367 Gets the compression methods used by the specified TLS connection.
368
369 This function returns current integrated compression methods used by
370 the specified TLS connection.
371
372 @param[in] Tls Pointer to the TLS object.
373 @param[in,out] CompressionId The current compression method used by
374 the TLS object.
375
376 @retval EFI_SUCCESS The compression method was returned successfully.
377 @retval EFI_INVALID_PARAMETER The parameter is invalid.
378 @retval EFI_ABORTED Invalid Compression method.
379 @retval EFI_UNSUPPORTED This function is not supported.
380
381 **/
382 EFI_STATUS
383 EFIAPI
384 TlsGetCurrentCompressionId (
385 IN VOID *Tls,
386 IN OUT UINT8 *CompressionId
387 )
388 {
389 ASSERT (FALSE);
390 return EFI_UNSUPPORTED;
391 }
392
393 /**
394 Gets the verification mode currently set in the TLS connection.
395
396 This function returns the peer verification mode currently set in the
397 specified TLS connection.
398
399 If Tls is NULL, then ASSERT().
400
401 @param[in] Tls Pointer to the TLS object.
402
403 @return The verification mode set in the specified TLS connection.
404
405 **/
406 UINT32
407 EFIAPI
408 TlsGetVerify (
409 IN VOID *Tls
410 )
411 {
412 ASSERT (FALSE);
413 return 0;
414 }
415
416 /**
417 Gets the session ID used by the specified TLS connection.
418
419 This function returns the TLS/SSL session ID currently used by the
420 specified TLS connection.
421
422 @param[in] Tls Pointer to the TLS object.
423 @param[in,out] SessionId Buffer to contain the returned session ID.
424 @param[in,out] SessionIdLen The length of Session ID in bytes.
425
426 @retval EFI_SUCCESS The Session ID was returned successfully.
427 @retval EFI_INVALID_PARAMETER The parameter is invalid.
428 @retval EFI_UNSUPPORTED Invalid TLS/SSL session.
429
430 **/
431 EFI_STATUS
432 EFIAPI
433 TlsGetSessionId (
434 IN VOID *Tls,
435 IN OUT UINT8 *SessionId,
436 IN OUT UINT16 *SessionIdLen
437 )
438 {
439 ASSERT (FALSE);
440 return EFI_UNSUPPORTED;
441 }
442
443 /**
444 Gets the client random data used in the specified TLS connection.
445
446 This function returns the TLS/SSL client random data currently used in
447 the specified TLS connection.
448
449 @param[in] Tls Pointer to the TLS object.
450 @param[in,out] ClientRandom Buffer to contain the returned client
451 random data (32 bytes).
452
453 **/
454 VOID
455 EFIAPI
456 TlsGetClientRandom (
457 IN VOID *Tls,
458 IN OUT UINT8 *ClientRandom
459 )
460 {
461 ASSERT (FALSE);
462 }
463
464 /**
465 Gets the server random data used in the specified TLS connection.
466
467 This function returns the TLS/SSL server random data currently used in
468 the specified TLS connection.
469
470 @param[in] Tls Pointer to the TLS object.
471 @param[in,out] ServerRandom Buffer to contain the returned server
472 random data (32 bytes).
473
474 **/
475 VOID
476 EFIAPI
477 TlsGetServerRandom (
478 IN VOID *Tls,
479 IN OUT UINT8 *ServerRandom
480 )
481 {
482 ASSERT (FALSE);
483 }
484
485 /**
486 Gets the master key data used in the specified TLS connection.
487
488 This function returns the TLS/SSL master key material currently used in
489 the specified TLS connection.
490
491 @param[in] Tls Pointer to the TLS object.
492 @param[in,out] KeyMaterial Buffer to contain the returned key material.
493
494 @retval EFI_SUCCESS Key material was returned successfully.
495 @retval EFI_INVALID_PARAMETER The parameter is invalid.
496 @retval EFI_UNSUPPORTED Invalid TLS/SSL session.
497
498 **/
499 EFI_STATUS
500 EFIAPI
501 TlsGetKeyMaterial (
502 IN VOID *Tls,
503 IN OUT UINT8 *KeyMaterial
504 )
505 {
506 ASSERT (FALSE);
507 return EFI_UNSUPPORTED;
508 }
509
510 /**
511 Gets the CA Certificate from the cert store.
512
513 This function returns the CA certificate for the chosen
514 TLS connection.
515
516 @param[in] Tls Pointer to the TLS object.
517 @param[out] Data Pointer to the data buffer to receive the CA
518 certificate data sent to the client.
519 @param[in,out] DataSize The size of data buffer in bytes.
520
521 @retval EFI_SUCCESS The operation succeeded.
522 @retval EFI_UNSUPPORTED This function is not supported.
523 @retval EFI_BUFFER_TOO_SMALL The Data is too small to hold the data.
524
525 **/
526 EFI_STATUS
527 EFIAPI
528 TlsGetCaCertificate (
529 IN VOID *Tls,
530 OUT VOID *Data,
531 IN OUT UINTN *DataSize
532 )
533 {
534 ASSERT (FALSE);
535 return EFI_UNSUPPORTED;
536 }
537
538 /**
539 Gets the local public Certificate set in the specified TLS object.
540
541 This function returns the local public certificate which was currently set
542 in the specified TLS object.
543
544 @param[in] Tls Pointer to the TLS object.
545 @param[out] Data Pointer to the data buffer to receive the local
546 public certificate.
547 @param[in,out] DataSize The size of data buffer in bytes.
548
549 @retval EFI_SUCCESS The operation succeeded.
550 @retval EFI_INVALID_PARAMETER The parameter is invalid.
551 @retval EFI_NOT_FOUND The certificate is not found.
552 @retval EFI_BUFFER_TOO_SMALL The Data is too small to hold the data.
553
554 **/
555 EFI_STATUS
556 EFIAPI
557 TlsGetHostPublicCert (
558 IN VOID *Tls,
559 OUT VOID *Data,
560 IN OUT UINTN *DataSize
561 )
562 {
563 ASSERT (FALSE);
564 return EFI_UNSUPPORTED;
565 }
566
567 /**
568 Gets the local private key set in the specified TLS object.
569
570 This function returns the local private key data which was currently set
571 in the specified TLS object.
572
573 @param[in] Tls Pointer to the TLS object.
574 @param[out] Data Pointer to the data buffer to receive the local
575 private key data.
576 @param[in,out] DataSize The size of data buffer in bytes.
577
578 @retval EFI_SUCCESS The operation succeeded.
579 @retval EFI_UNSUPPORTED This function is not supported.
580 @retval EFI_BUFFER_TOO_SMALL The Data is too small to hold the data.
581
582 **/
583 EFI_STATUS
584 EFIAPI
585 TlsGetHostPrivateKey (
586 IN VOID *Tls,
587 OUT VOID *Data,
588 IN OUT UINTN *DataSize
589 )
590 {
591 ASSERT (FALSE);
592 return EFI_UNSUPPORTED;
593 }
594
595 /**
596 Gets the CA-supplied certificate revocation list data set in the specified
597 TLS object.
598
599 This function returns the CA-supplied certificate revocation list data which
600 was currently set in the specified TLS object.
601
602 @param[out] Data Pointer to the data buffer to receive the CRL data.
603 @param[in,out] DataSize The size of data buffer in bytes.
604
605 @retval EFI_SUCCESS The operation succeeded.
606 @retval EFI_UNSUPPORTED This function is not supported.
607 @retval EFI_BUFFER_TOO_SMALL The Data is too small to hold the data.
608
609 **/
610 EFI_STATUS
611 EFIAPI
612 TlsGetCertRevocationList (
613 OUT VOID *Data,
614 IN OUT UINTN *DataSize
615 )
616 {
617 ASSERT (FALSE);
618 return EFI_UNSUPPORTED;
619 }