TianoCore EDK2 master
Loading...
Searching...
No Matches
Crypto.h
Go to the documentation of this file.
1
10#ifndef __EDKII_CRYPTO_PROTOCOL_H__
11#define __EDKII_CRYPTO_PROTOCOL_H__
12
13#include <Base.h>
15#include <Library/PcdLib.h>
16
24#define EDKII_CRYPTO_VERSION 17
25
30
37typedef
40 VOID
41 );
42
43// =====================================================================================
44// MAC (Message Authentication Code) Primitive
45// =====================================================================================
46
52typedef
53VOID *
55 VOID
56 );
57
58typedef
59VOID
60(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FREE)(
61 IN VOID *HmacMd5Ctx
62 );
63
64typedef
65BOOLEAN
66(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_SET_KEY)(
67 OUT VOID *HmacMd5Context,
68 IN CONST UINT8 *Key,
69 IN UINTN KeySize
70 );
71
72typedef
73BOOLEAN
74(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_DUPLICATE)(
75 IN CONST VOID *HmacMd5Context,
76 OUT VOID *NewHmacMd5Context
77 );
78
79typedef
80BOOLEAN
81(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_UPDATE)(
82 IN OUT VOID *HmacMd5Context,
83 IN CONST VOID *Data,
84 IN UINTN DataSize
85 );
86
87typedef
88BOOLEAN
89(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FINAL)(
90 IN OUT VOID *HmacMd5Context,
91 OUT UINT8 *HmacValue
92 );
93
99typedef
100VOID *
102 VOID
103 );
104
105typedef
106VOID
107(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FREE)(
108 IN VOID *HmacSha1Ctx
109 );
110
111typedef
112BOOLEAN
113(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_SET_KEY)(
114 OUT VOID *HmacSha1Context,
115 IN CONST UINT8 *Key,
116 IN UINTN KeySize
117 );
118
119typedef
120BOOLEAN
121(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_DUPLICATE)(
122 IN CONST VOID *HmacSha1Context,
123 OUT VOID *NewHmacSha1Context
124 );
125
126typedef
127BOOLEAN
128(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_UPDATE)(
129 IN OUT VOID *HmacSha1Context,
130 IN CONST VOID *Data,
131 IN UINTN DataSize
132 );
133
134typedef
135BOOLEAN
136(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FINAL)(
137 IN OUT VOID *HmacSha1Context,
138 OUT UINT8 *HmacValue
139 );
140
148typedef
149VOID *
151 VOID
152 );
153
160typedef
161VOID
163 IN VOID *HmacSha256Ctx
164 );
165
182typedef
183BOOLEAN
185 OUT VOID *HmacSha256Context,
186 IN CONST UINT8 *Key,
187 IN UINTN KeySize
188 );
189
205typedef
206BOOLEAN
208 IN CONST VOID *HmacSha256Context,
209 OUT VOID *NewHmacSha256Context
210 );
211
232typedef
233BOOLEAN
235 IN OUT VOID *HmacSha256Context,
236 IN CONST VOID *Data,
237 IN UINTN DataSize
238 );
239
262typedef
263BOOLEAN
265 IN OUT VOID *HmacSha256Context,
266 OUT UINT8 *HmacValue
267 );
268
289typedef
290BOOLEAN
292 IN CONST VOID *Data,
293 IN UINTN DataSize,
294 IN CONST UINT8 *Key,
295 IN UINTN KeySize,
296 OUT UINT8 *HmacValue
297 );
298
306typedef
307VOID *
309 VOID
310 );
311
318typedef
319VOID
321 IN VOID *HmacSha384Ctx
322 );
323
340typedef
341BOOLEAN
343 OUT VOID *HmacSha384Context,
344 IN CONST UINT8 *Key,
345 IN UINTN KeySize
346 );
347
363typedef
364BOOLEAN
366 IN CONST VOID *HmacSha384Context,
367 OUT VOID *NewHmacSha384Context
368 );
369
390typedef
391BOOLEAN
393 IN OUT VOID *HmacSha384Context,
394 IN CONST VOID *Data,
395 IN UINTN DataSize
396 );
397
420typedef
421BOOLEAN
423 IN OUT VOID *HmacSha384Context,
424 OUT UINT8 *HmacValue
425 );
426
447typedef
448BOOLEAN
450 IN CONST VOID *Data,
451 IN UINTN DataSize,
452 IN CONST UINT8 *Key,
453 IN UINTN KeySize,
454 OUT UINT8 *HmacValue
455 );
456
457// =====================================================================================
458// One-Way Cryptographic Hash Primitives
459// =====================================================================================
460
466typedef
469 VOID
470 );
471
472typedef
473BOOLEAN
474(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_INIT)(
475 OUT VOID *Md4Context
476 );
477
478typedef
479BOOLEAN
480(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE)(
481 IN CONST VOID *Md4Context,
482 OUT VOID *NewMd4Context
483 );
484
485typedef
486BOOLEAN
487(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_UPDATE)(
488 IN OUT VOID *Md4Context,
489 IN CONST VOID *Data,
490 IN UINTN DataSize
491 );
492
493typedef
494BOOLEAN
495(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_FINAL)(
496 IN OUT VOID *Md4Context,
497 OUT UINT8 *HashValue
498 );
499
500typedef
501BOOLEAN
502(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL)(
503 IN CONST VOID *Data,
504 IN UINTN DataSize,
505 OUT UINT8 *HashValue
506 );
507
508// ----------------------------------------------------------------------------
509
519typedef
522 VOID
523 );
524
539typedef
540BOOLEAN
541(EFIAPI *EDKII_CRYPTO_MD5_INIT)(
542 OUT VOID *Md5Context
543 );
544
560typedef
561BOOLEAN
563 IN CONST VOID *Md5Context,
564 OUT VOID *NewMd5Context
565 );
566
587typedef
588BOOLEAN
590 IN OUT VOID *Md5Context,
591 IN CONST VOID *Data,
592 IN UINTN DataSize
593 );
594
617typedef
618BOOLEAN
619(EFIAPI *EDKII_CRYPTO_MD5_FINAL)(
620 IN OUT VOID *Md5Context,
621 OUT UINT8 *HashValue
622 );
623
642typedef
643BOOLEAN
645 IN CONST VOID *Data,
646 IN UINTN DataSize,
647 OUT UINT8 *HashValue
648 );
649
650// =====================================================================================
651// PKCS
652// =====================================================================================
653
678typedef
679BOOLEAN
681 IN CONST UINT8 *PublicKey,
682 IN UINTN PublicKeySize,
683 IN UINT8 *InData,
684 IN UINTN InDataSize,
685 IN CONST UINT8 *PrngSeed OPTIONAL,
686 IN UINTN PrngSeedSize OPTIONAL,
687 OUT UINT8 **EncryptedData,
688 OUT UINTN *EncryptedDataSize
689 );
690
708typedef
709BOOLEAN
711 IN CONST UINT8 *PrivateKey,
712 IN UINTN PrivateKeySize,
713 IN UINT8 *EncryptedData,
714 IN UINTN EncryptedDataSize,
715 OUT UINT8 **OutData,
716 OUT UINTN *OutDataSize
717 );
718
748typedef
749BOOLEAN
751 IN VOID *RsaContext,
752 IN UINT8 *InData,
753 IN UINTN InDataSize,
754 IN CONST UINT8 *PrngSeed OPTIONAL,
755 IN UINTN PrngSeedSize OPTIONAL,
756 IN UINT16 DigestLen OPTIONAL,
757 OUT UINT8 **EncryptedData,
758 OUT UINTN *EncryptedDataSize
759 );
760
784typedef
785BOOLEAN
787 IN VOID *RsaContext,
788 IN UINT8 *EncryptedData,
789 IN UINTN EncryptedDataSize,
790 IN UINT16 DigestLen OPTIONAL,
791 OUT UINT8 **OutData,
792 OUT UINTN *OutDataSize
793 );
794
795// ---------------------------------------------
796// PKCS5
797
825typedef
826BOOLEAN
828 IN UINTN PasswordSize,
829 IN CONST CHAR8 *Password,
830 IN UINTN SaltSize,
831 IN CONST UINT8 *Salt,
832 IN UINTN IterationCount,
833 IN UINTN DigestSize,
834 IN UINTN OutputSize,
835 OUT UINT8 *Output
836 );
837
838// ---------------------------------------------
839// PKCS7
840
863typedef
864BOOLEAN
866 IN CONST UINT8 *P7Data,
867 IN UINTN P7DataLength,
868 IN CONST UINT8 *TrustedCert,
869 IN UINTN TrustedCertLength,
870 IN CONST UINT8 *Data,
871 IN UINTN DataLength
872 );
873
913typedef
916 IN CONST UINT8 *Pkcs7Signature,
917 IN CONST UINT32 SignatureSize,
918 IN CONST CHAR8 *RequiredEKUs[],
919 IN CONST UINT32 RequiredEKUsSize,
920 IN BOOLEAN RequireAllPresent
921 );
922
949typedef
950BOOLEAN
952 IN CONST UINT8 *P7Data,
953 IN UINTN P7Length,
954 OUT UINT8 **CertStack,
955 OUT UINTN *StackLength,
956 OUT UINT8 **TrustedCert,
957 OUT UINTN *CertLength
958 );
959
968typedef
969VOID
971 IN UINT8 *Certs
972 );
973
1001typedef
1002BOOLEAN
1003(EFIAPI *EDKII_CRYPTO_PKCS7_SIGN)(
1004 IN CONST UINT8 *PrivateKey,
1005 IN UINTN PrivateKeySize,
1006 IN CONST UINT8 *KeyPassword,
1007 IN UINT8 *InData,
1008 IN UINTN InDataSize,
1009 IN UINT8 *SignCert,
1010 IN UINT8 *OtherCerts OPTIONAL,
1011 OUT UINT8 **SignedData,
1012 OUT UINTN *SignedDataSize
1013 );
1014
1036typedef
1037BOOLEAN
1039 IN CONST UINT8 *P7Data,
1040 IN UINTN P7Length,
1041 OUT VOID **Content,
1042 OUT UINTN *ContentSize
1043 );
1044
1067typedef
1068BOOLEAN
1070 IN CONST UINT8 *P7Data,
1071 IN UINTN P7Length,
1072 OUT UINT8 **SignerChainCerts,
1073 OUT UINTN *ChainLength,
1074 OUT UINT8 **UnchainCerts,
1075 OUT UINTN *UnchainLength
1076 );
1077
1102typedef
1103BOOLEAN
1105 IN CONST UINT8 *AuthData,
1106 IN UINTN DataSize,
1107 IN CONST UINT8 *TrustedCert,
1108 IN UINTN CertSize,
1109 IN CONST UINT8 *ImageHash,
1110 IN UINTN HashSize
1111 );
1112
1133typedef
1134BOOLEAN
1136 IN CONST UINT8 *AuthData,
1137 IN UINTN DataSize,
1138 IN CONST UINT8 *TsaCert,
1139 IN UINTN CertSize,
1140 OUT EFI_TIME *SigningTime
1141 );
1142
1143// =====================================================================================
1144// DH Key Exchange Primitive
1145// =====================================================================================
1146
1155typedef
1156VOID *
1157(EFIAPI *EDKII_CRYPTO_DH_NEW)(
1158 VOID
1159 );
1160
1169typedef
1170VOID
1171(EFIAPI *EDKII_CRYPTO_DH_FREE)(
1172 IN VOID *DhContext
1173 );
1174
1199typedef
1200BOOLEAN
1202 IN OUT VOID *DhContext,
1204 IN UINTN PrimeLength,
1205 OUT UINT8 *Prime
1206 );
1207
1231typedef
1232BOOLEAN
1234 IN OUT VOID *DhContext,
1236 IN UINTN PrimeLength,
1237 IN CONST UINT8 *Prime
1238 );
1239
1264typedef
1265BOOLEAN
1267 IN OUT VOID *DhContext,
1268 OUT UINT8 *PublicKey,
1269 IN OUT UINTN *PublicKeySize
1270 );
1271
1298typedef
1299BOOLEAN
1301 IN OUT VOID *DhContext,
1302 IN CONST UINT8 *PeerPublicKey,
1303 IN UINTN PeerPublicKeySize,
1304 OUT UINT8 *Key,
1305 IN OUT UINTN *KeySize
1306 );
1307
1308// =====================================================================================
1309// Pseudo-Random Generation Primitive
1310// =====================================================================================
1311
1330typedef
1331BOOLEAN
1332(EFIAPI *EDKII_CRYPTO_RANDOM_SEED)(
1333 IN CONST UINT8 *Seed OPTIONAL,
1334 IN UINTN SeedSize
1335 );
1336
1351typedef
1352BOOLEAN
1354 OUT UINT8 *Output,
1355 IN UINTN Size
1356 );
1357
1377typedef
1378BOOLEAN
1380 IN VOID *RsaContext,
1381 IN CONST UINT8 *MessageHash,
1382 IN UINTN HashSize,
1383 IN CONST UINT8 *Signature,
1384 IN UINTN SigSize
1385 );
1386
1394typedef
1395VOID *
1396(EFIAPI *EDKII_CRYPTO_RSA_NEW)(
1397 VOID
1398 );
1399
1408typedef
1409VOID
1410(EFIAPI *EDKII_CRYPTO_RSA_FREE)(
1411 IN VOID *RsaContext
1412 );
1413
1436typedef
1437BOOLEAN
1438(EFIAPI *EDKII_CRYPTO_RSA_SET_KEY)(
1439 IN OUT VOID *RsaContext,
1440 IN RSA_KEY_TAG KeyTag,
1441 IN CONST UINT8 *BigNumber,
1442 IN UINTN BnSize
1443 );
1444
1473typedef
1474BOOLEAN
1475(EFIAPI *EDKII_CRYPTO_RSA_GET_KEY)(
1476 IN OUT VOID *RsaContext,
1477 IN RSA_KEY_TAG KeyTag,
1478 OUT UINT8 *BigNumber,
1479 IN OUT UINTN *BnSize
1480 );
1481
1505typedef
1506BOOLEAN
1508 IN OUT VOID *RsaContext,
1509 IN UINTN ModulusLength,
1510 IN CONST UINT8 *PublicExponent,
1511 IN UINTN PublicExponentSize
1512 );
1513
1535typedef
1536BOOLEAN
1538 IN VOID *RsaContext
1539 );
1540
1568typedef
1569BOOLEAN
1571 IN VOID *RsaContext,
1572 IN CONST UINT8 *MessageHash,
1573 IN UINTN HashSize,
1574 OUT UINT8 *Signature,
1575 IN OUT UINTN *SigSize
1576 );
1577
1597typedef
1598BOOLEAN
1600 IN VOID *RsaContext,
1601 IN CONST UINT8 *MessageHash,
1602 IN UINTN HashSize,
1603 IN CONST UINT8 *Signature,
1604 IN UINTN SigSize
1605 );
1606
1626typedef
1627BOOLEAN
1629 IN CONST UINT8 *PemData,
1630 IN UINTN PemSize,
1631 IN CONST CHAR8 *Password,
1632 OUT VOID **RsaContext
1633 );
1634
1653typedef
1654BOOLEAN
1656 IN CONST UINT8 *Cert,
1657 IN UINTN CertSize,
1658 OUT VOID **RsaContext
1659 );
1660
1661// ----------------------------------------
1662// SHA
1663// ----------------------------------------
1664
1674typedef
1677 VOID
1678 );
1679
1694typedef
1695BOOLEAN
1696(EFIAPI *EDKII_CRYPTO_SHA1_INIT)(
1697 OUT VOID *Sha1Context
1698 );
1699
1715typedef
1716BOOLEAN
1718 IN CONST VOID *Sha1Context,
1719 OUT VOID *NewSha1Context
1720 );
1721
1742typedef
1743BOOLEAN
1744(EFIAPI *EDKII_CRYPTO_SHA1_UPDATE)(
1745 IN OUT VOID *Sha1Context,
1746 IN CONST VOID *Data,
1747 IN UINTN DataSize
1748 );
1749
1772typedef
1773BOOLEAN
1774(EFIAPI *EDKII_CRYPTO_SHA1_FINAL)(
1775 IN OUT VOID *Sha1Context,
1776 OUT UINT8 *HashValue
1777 );
1778
1797typedef
1798BOOLEAN
1800 IN CONST VOID *Data,
1801 IN UINTN DataSize,
1802 OUT UINT8 *HashValue
1803 );
1804
1811typedef
1814 VOID
1815 );
1816
1829typedef
1830BOOLEAN
1831(EFIAPI *EDKII_CRYPTO_SHA256_INIT)(
1832 OUT VOID *Sha256Context
1833 );
1834
1850typedef
1851BOOLEAN
1853 IN CONST VOID *Sha256Context,
1854 OUT VOID *NewSha256Context
1855 );
1856
1875typedef
1876BOOLEAN
1878 IN OUT VOID *Sha256Context,
1879 IN CONST VOID *Data,
1880 IN UINTN DataSize
1881 );
1882
1903typedef
1904BOOLEAN
1906 IN OUT VOID *Sha256Context,
1907 OUT UINT8 *HashValue
1908 );
1909
1928typedef
1929BOOLEAN
1931 IN CONST VOID *Data,
1932 IN UINTN DataSize,
1933 OUT UINT8 *HashValue
1934 );
1935
1944typedef
1947 VOID
1948 );
1949
1962typedef
1963BOOLEAN
1964(EFIAPI *EDKII_CRYPTO_SHA384_INIT)(
1965 OUT VOID *Sha384Context
1966 );
1967
1983typedef
1984BOOLEAN
1986 IN CONST VOID *Sha384Context,
1987 OUT VOID *NewSha384Context
1988 );
1989
2008typedef
2009BOOLEAN
2011 IN OUT VOID *Sha384Context,
2012 IN CONST VOID *Data,
2013 IN UINTN DataSize
2014 );
2015
2036typedef
2037BOOLEAN
2039 IN OUT VOID *Sha384Context,
2040 OUT UINT8 *HashValue
2041 );
2042
2061typedef
2062BOOLEAN
2064 IN CONST VOID *Data,
2065 IN UINTN DataSize,
2066 OUT UINT8 *HashValue
2067 );
2068
2075typedef
2078 VOID
2079 );
2080
2093typedef
2094BOOLEAN
2095(EFIAPI *EDKII_CRYPTO_SHA512_INIT)(
2096 OUT VOID *Sha512Context
2097 );
2098
2114typedef
2115BOOLEAN
2117 IN CONST VOID *Sha512Context,
2118 OUT VOID *NewSha512Context
2119 );
2120
2139typedef
2140BOOLEAN
2142 IN OUT VOID *Sha512Context,
2143 IN CONST VOID *Data,
2144 IN UINTN DataSize
2145 );
2146
2167typedef
2168BOOLEAN
2170 IN OUT VOID *Sha512Context,
2171 OUT UINT8 *HashValue
2172 );
2173
2192typedef
2193BOOLEAN
2195 IN CONST VOID *Data,
2196 IN UINTN DataSize,
2197 OUT UINT8 *HashValue
2198 );
2199
2200// ----------------------------------------------------------------------------
2201// X509
2202// ----------------------------------------------------------------------------
2203
2223typedef
2224BOOLEAN
2226 IN CONST UINT8 *Cert,
2227 IN UINTN CertSize,
2228 OUT UINT8 *CertSubject,
2229 IN OUT UINTN *SubjectSize
2230 );
2231
2258typedef
2261 IN CONST UINT8 *Cert,
2262 IN UINTN CertSize,
2263 OUT CHAR8 *CommonName OPTIONAL,
2264 IN OUT UINTN *CommonNameSize
2265 );
2266
2293typedef
2296 IN CONST UINT8 *Cert,
2297 IN UINTN CertSize,
2298 OUT CHAR8 *NameBuffer OPTIONAL,
2299 IN OUT UINTN *NameBufferSize
2300 );
2301
2320typedef
2321BOOLEAN
2323 IN CONST UINT8 *Cert,
2324 IN UINTN CertSize,
2325 IN CONST UINT8 *CACert,
2326 IN UINTN CACertSize
2327 );
2328
2345typedef
2346BOOLEAN
2348 IN CONST UINT8 *Cert,
2349 IN UINTN CertSize,
2350 OUT UINT8 **SingleX509Cert
2351 );
2352
2371typedef
2372BOOLEAN
2374 IN OUT UINT8 **X509Stack,
2375 ...
2376 );
2377
2397typedef
2398BOOLEAN
2400 IN OUT UINT8 **X509Stack,
2401 IN VA_LIST Args
2402 );
2403
2412typedef
2413VOID
2414(EFIAPI *EDKII_CRYPTO_X509_FREE)(
2415 IN VOID *X509Cert
2416 );
2417
2426typedef
2427VOID
2429 IN VOID *X509Stack
2430 );
2431
2449typedef
2450BOOLEAN
2452 IN CONST UINT8 *Cert,
2453 IN UINTN CertSize,
2454 OUT UINT8 **TBSCert,
2455 OUT UINTN *TBSCertSize
2456 );
2457
2474typedef
2475BOOLEAN
2477 IN CONST UINT8 *Cert,
2478 IN UINTN CertSize,
2479 OUT UINTN *Version
2480 );
2481
2505typedef
2506BOOLEAN
2508 IN CONST UINT8 *Cert,
2509 IN UINTN CertSize,
2510 OUT UINT8 *SerialNumber, OPTIONAL
2511 IN OUT UINTN *SerialNumberSize
2512 );
2513
2533typedef
2534BOOLEAN
2536 IN CONST UINT8 *Cert,
2537 IN UINTN CertSize,
2538 OUT UINT8 *CertIssuer,
2539 IN OUT UINTN *CertIssuerSize
2540 );
2541
2560typedef
2561BOOLEAN
2563 IN CONST UINT8 *Cert,
2564 IN UINTN CertSize,
2565 OUT UINT8 *Oid, OPTIONAL
2566 IN OUT UINTN *OidSize
2567 );
2568
2589typedef
2590BOOLEAN
2592 IN CONST UINT8 *Cert,
2593 IN UINTN CertSize,
2594 IN CONST UINT8 *Oid,
2595 IN UINTN OidSize,
2596 OUT UINT8 *ExtensionData,
2597 IN OUT UINTN *ExtensionDataSize
2598 );
2599
2617typedef
2618BOOLEAN
2620 IN CONST UINT8 *Cert,
2621 IN UINTN CertSize,
2622 OUT UINT8 *Usage,
2623 IN OUT UINTN *UsageSize
2624 );
2625
2647typedef
2648BOOLEAN
2650 IN CONST UINT8 *Cert,
2651 IN UINTN CertSize,
2652 IN UINT8 *From,
2653 IN OUT UINTN *FromSize,
2654 IN UINT8 *To,
2655 IN OUT UINTN *ToSize
2656 );
2657
2681typedef
2682BOOLEAN
2684 IN CONST CHAR8 *DateTimeStr,
2685 OUT VOID *DateTime,
2686 IN OUT UINTN *DateTimeSize
2687 );
2688
2705typedef
2706INT32
2708 IN CONST VOID *DateTime1,
2709 IN CONST VOID *DateTime2
2710 );
2711
2723typedef
2724BOOLEAN
2726 IN CONST UINT8 *Cert,
2727 IN UINTN CertSize,
2728 OUT UINTN *Usage
2729 );
2730
2749typedef
2750BOOLEAN
2752 IN CONST UINT8 *RootCert,
2753 IN UINTN RootCertLength,
2754 IN CONST UINT8 *CertChain,
2755 IN UINTN CertChainLength
2756 );
2757
2776typedef
2777BOOLEAN
2779 IN CONST UINT8 *CertChain,
2780 IN UINTN CertChainLength,
2781 IN CONST INT32 CertIndex,
2782 OUT CONST UINT8 **Cert,
2783 OUT UINTN *CertLength
2784 );
2785
2797typedef
2798BOOLEAN
2800 IN OUT UINT8 **Ptr,
2801 IN CONST UINT8 *End,
2802 OUT UINTN *Length,
2803 IN UINT32 Tag
2804 );
2805
2824typedef
2825BOOLEAN
2827 CONST UINT8 *Cert,
2828 UINTN CertSize,
2829 UINT8 *BasicConstraints,
2830 UINTN *BasicConstraintsSize
2831 );
2832
2833// =====================================================================================
2834// Symmetric Cryptography Primitive
2835// =====================================================================================
2836
2842typedef
2845 VOID
2846 );
2847
2848typedef
2849BOOLEAN
2850(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_INIT)(
2851 OUT VOID *TdesContext,
2852 IN CONST UINT8 *Key,
2853 IN UINTN KeyLength
2854 );
2855
2856typedef
2857BOOLEAN
2858(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_ECB_ENCRYPT)(
2859 IN VOID *TdesContext,
2860 IN CONST UINT8 *Input,
2861 IN UINTN InputSize,
2862 OUT UINT8 *Output
2863 );
2864
2865typedef
2866BOOLEAN
2867(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_ECB_DECRYPT)(
2868 IN VOID *TdesContext,
2869 IN CONST UINT8 *Input,
2870 IN UINTN InputSize,
2871 OUT UINT8 *Output
2872 );
2873
2874typedef
2875BOOLEAN
2876(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_CBC_ENCRYPT)(
2877 IN VOID *TdesContext,
2878 IN CONST UINT8 *Input,
2879 IN UINTN InputSize,
2880 IN CONST UINT8 *Ivec,
2881 OUT UINT8 *Output
2882 );
2883
2884typedef
2885BOOLEAN
2886(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_CBC_DECRYPT)(
2887 IN VOID *TdesContext,
2888 IN CONST UINT8 *Input,
2889 IN UINTN InputSize,
2890 IN CONST UINT8 *Ivec,
2891 OUT UINT8 *Output
2892 );
2893
2903typedef
2906 VOID
2907 );
2908
2931typedef
2932BOOLEAN
2933(EFIAPI *EDKII_CRYPTO_AES_INIT)(
2934 OUT VOID *AesContext,
2935 IN CONST UINT8 *Key,
2936 IN UINTN KeyLength
2937 );
2938
2944typedef
2945BOOLEAN
2947 IN VOID *AesContext,
2948 IN CONST UINT8 *Input,
2949 IN UINTN InputSize,
2950 OUT UINT8 *Output
2951 );
2952
2953typedef
2954BOOLEAN
2955(EFIAPI *DEPRECATED_EDKII_CRYPTO_AES_ECB_DECRYPT)(
2956 IN VOID *AesContext,
2957 IN CONST UINT8 *Input,
2958 IN UINTN InputSize,
2959 OUT UINT8 *Output
2960 );
2961
2991typedef
2992BOOLEAN
2994 IN VOID *AesContext,
2995 IN CONST UINT8 *Input,
2996 IN UINTN InputSize,
2997 IN CONST UINT8 *Ivec,
2998 OUT UINT8 *Output
2999 );
3000
3030typedef
3031BOOLEAN
3033 IN VOID *AesContext,
3034 IN CONST UINT8 *Input,
3035 IN UINTN InputSize,
3036 IN CONST UINT8 *Ivec,
3037 OUT UINT8 *Output
3038 );
3039
3045typedef
3048 VOID
3049 );
3050
3051typedef
3052BOOLEAN
3053(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_INIT)(
3054 OUT VOID *Arc4Context,
3055 IN CONST UINT8 *Key,
3056 IN UINTN KeySize
3057 );
3058
3059typedef
3060BOOLEAN
3061(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT)(
3062 IN OUT VOID *Arc4Context,
3063 IN CONST UINT8 *Input,
3064 IN UINTN InputSize,
3065 OUT UINT8 *Output
3066 );
3067
3068typedef
3069BOOLEAN
3070(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT)(
3071 IN OUT VOID *Arc4Context,
3072 IN UINT8 *Input,
3073 IN UINTN InputSize,
3074 OUT UINT8 *Output
3075 );
3076
3077typedef
3078BOOLEAN
3079(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_RESET)(
3080 IN OUT VOID *Arc4Context
3081 );
3082
3092typedef
3095 VOID
3096 );
3097
3112typedef
3113BOOLEAN
3114(EFIAPI *EDKII_CRYPTO_SM3_INIT)(
3115 OUT VOID *Sm3Context
3116 );
3117
3133typedef
3134BOOLEAN
3136 IN CONST VOID *Sm3Context,
3137 OUT VOID *NewSm3Context
3138 );
3139
3160typedef
3161BOOLEAN
3162(EFIAPI *EDKII_CRYPTO_SM3_UPDATE)(
3163 IN OUT VOID *Sm3Context,
3164 IN CONST VOID *Data,
3165 IN UINTN DataSize
3166 );
3167
3190typedef
3191BOOLEAN
3192(EFIAPI *EDKII_CRYPTO_SM3_FINAL)(
3193 IN OUT VOID *Sm3Context,
3194 OUT UINT8 *HashValue
3195 );
3196
3215typedef
3216BOOLEAN
3218 IN CONST VOID *Data,
3219 IN UINTN DataSize,
3220 OUT UINT8 *HashValue
3221 );
3222
3239typedef
3240BOOLEAN
3242 IN CONST UINT8 *Key,
3243 IN UINTN KeySize,
3244 IN CONST UINT8 *Salt,
3245 IN UINTN SaltSize,
3246 IN CONST UINT8 *Info,
3247 IN UINTN InfoSize,
3248 OUT UINT8 *Out,
3249 IN UINTN OutSize
3250 );
3251
3266typedef
3267BOOLEAN
3269 IN CONST UINT8 *Key,
3270 IN UINTN KeySize,
3271 IN CONST UINT8 *Salt,
3272 IN UINTN SaltSize,
3273 OUT UINT8 *PrkOut,
3274 UINTN PrkOutSize
3275 );
3276
3291typedef
3292BOOLEAN
3294 IN CONST UINT8 *Prk,
3295 IN UINTN PrkSize,
3296 IN CONST UINT8 *Info,
3297 IN UINTN InfoSize,
3298 OUT UINT8 *Out,
3299 IN UINTN OutSize
3300 );
3301
3318typedef
3319BOOLEAN
3321 IN CONST UINT8 *Key,
3322 IN UINTN KeySize,
3323 IN CONST UINT8 *Salt,
3324 IN UINTN SaltSize,
3325 IN CONST UINT8 *Info,
3326 IN UINTN InfoSize,
3327 OUT UINT8 *Out,
3328 IN UINTN OutSize
3329 );
3330
3347typedef
3348BOOLEAN
3350 IN CONST UINT8 *Key,
3351 IN UINTN KeySize,
3352 IN CONST UINT8 *Salt,
3353 IN UINTN SaltSize,
3354 OUT UINT8 *PrkOut,
3355 UINTN PrkOutSize
3356 );
3357
3372typedef
3373BOOLEAN
3375 IN CONST UINT8 *Prk,
3376 IN UINTN PrkSize,
3377 IN CONST UINT8 *Info,
3378 IN UINTN InfoSize,
3379 OUT UINT8 *Out,
3380 IN UINTN OutSize
3381 );
3382
3394typedef
3395BOOLEAN
3397 VOID
3398 );
3399
3406typedef
3407VOID
3409 IN VOID *TlsCtx
3410 );
3411
3423typedef
3424VOID *
3425(EFIAPI *EDKII_CRYPTO_TLS_CTX_NEW)(
3426 IN UINT8 MajorVer,
3427 IN UINT8 MinorVer
3428 );
3429
3439typedef
3440VOID
3441(EFIAPI *EDKII_CRYPTO_TLS_FREE)(
3442 IN VOID *Tls
3443 );
3444
3458typedef
3459VOID *
3460(EFIAPI *EDKII_CRYPTO_TLS_NEW)(
3461 IN VOID *TlsCtx
3462 );
3463
3475typedef
3476BOOLEAN
3478 IN VOID *Tls
3479 );
3480
3507typedef
3510 IN VOID *Tls,
3511 IN UINT8 *BufferIn OPTIONAL,
3512 IN UINTN BufferInSize OPTIONAL,
3513 OUT UINT8 *BufferOut OPTIONAL,
3514 IN OUT UINTN *BufferOutSize
3515 );
3516
3542typedef
3545 IN VOID *Tls,
3546 IN UINT8 *BufferIn OPTIONAL,
3547 IN UINTN BufferInSize OPTIONAL,
3548 OUT UINT8 *BufferOut OPTIONAL,
3549 IN OUT UINTN *BufferOutSize
3550 );
3551
3570typedef
3573 IN VOID *Tls,
3574 IN OUT UINT8 *Buffer,
3575 IN OUT UINTN *BufferSize
3576 );
3577
3592typedef
3595 IN VOID *Tls,
3596 IN OUT VOID *Buffer,
3597 IN UINTN BufferSize
3598 );
3599
3614typedef
3617 IN VOID *Tls,
3618 IN VOID *Buffer,
3619 IN UINTN BufferSize
3620 );
3621
3637typedef
3639(EFIAPI *EDKII_CRYPTO_TLS_READ)(
3640 IN VOID *Tls,
3641 IN OUT VOID *Buffer,
3642 IN UINTN BufferSize
3643 );
3644
3660typedef
3662(EFIAPI *EDKII_CRYPTO_TLS_WRITE)(
3663 IN VOID *Tls,
3664 IN VOID *Buffer,
3665 IN UINTN BufferSize
3666 );
3667
3681typedef
3684 IN VOID *Tls
3685 );
3686
3701typedef
3704 IN VOID *Tls,
3705 IN UINT8 MajorVer,
3706 IN UINT8 MinorVer
3707 );
3708
3722typedef
3725 IN VOID *Tls,
3726 IN BOOLEAN IsServer
3727 );
3728
3747typedef
3750 IN VOID *Tls,
3751 IN UINT16 *CipherId,
3752 IN UINTN CipherNum
3753 );
3754
3767typedef
3770 IN UINT8 CompMethod
3771 );
3772
3782typedef
3783VOID
3785 IN VOID *Tls,
3786 IN UINT32 VerifyMode
3787 );
3788
3801typedef
3804 IN VOID *Tls,
3805 IN UINT32 Flags,
3806 IN CHAR8 *HostName
3807 );
3808
3824typedef
3827 IN VOID *Tls,
3828 IN UINT8 *SessionId,
3829 IN UINT16 SessionIdLen
3830 );
3831
3849typedef
3852 IN VOID *Tls,
3853 IN VOID *Data,
3854 IN UINTN DataSize
3855 );
3856
3874typedef
3877 IN VOID *Tls,
3878 IN VOID *Data,
3879 IN UINTN DataSize
3880 );
3881
3900typedef
3903 IN VOID *Tls,
3904 IN VOID *Data,
3905 IN UINTN DataSize,
3906 IN VOID *Password OPTIONAL
3907 );
3908
3925typedef
3928 IN VOID *Tls,
3929 IN VOID *Data,
3930 IN UINTN DataSize
3931 );
3932
3947typedef
3950 IN VOID *Data,
3951 IN UINTN DataSize
3952 );
3953
3967typedef
3968UINT16
3970 IN VOID *Tls
3971 );
3972
3986typedef
3987UINT8
3989 IN VOID *Tls
3990 );
3991
4006typedef
4009 IN VOID *Tls,
4010 IN OUT UINT16 *CipherId
4011 );
4012
4029typedef
4032 IN VOID *Tls,
4033 IN OUT UINT8 *CompressionId
4034 );
4035
4049typedef
4050UINT32
4052 IN VOID *Tls
4053 );
4054
4070typedef
4073 IN VOID *Tls,
4074 IN OUT UINT8 *SessionId,
4075 IN OUT UINT16 *SessionIdLen
4076 );
4077
4089typedef
4090VOID
4092 IN VOID *Tls,
4093 IN OUT UINT8 *ClientRandom
4094 );
4095
4107typedef
4108VOID
4110 IN VOID *Tls,
4111 IN OUT UINT8 *ServerRandom
4112 );
4113
4128typedef
4131 IN VOID *Tls,
4132 IN OUT UINT8 *KeyMaterial
4133 );
4134
4151typedef
4154 IN VOID *Tls,
4155 OUT VOID *Data,
4156 IN OUT UINTN *DataSize
4157 );
4158
4176typedef
4179 IN VOID *Tls,
4180 OUT VOID *Data,
4181 IN OUT UINTN *DataSize
4182 );
4183
4200typedef
4203 IN VOID *Tls,
4204 OUT VOID *Data,
4205 IN OUT UINTN *DataSize
4206 );
4207
4225typedef
4228 IN VOID *Tls,
4229 IN UINT8 *Data,
4230 IN UINTN DataSize
4231 );
4232
4247typedef
4250 IN VOID *Tls,
4251 IN UINT8 *Data,
4252 IN UINTN DataSize
4253 );
4254
4273typedef
4276 IN VOID *Tls,
4277 IN CONST VOID *Label,
4278 IN CONST VOID *Context,
4279 IN UINTN ContextLen,
4280 OUT VOID *KeyBuffer,
4281 IN UINTN KeyBufferLen
4282 );
4283
4299typedef
4302 OUT VOID *DATA,
4303 IN OUT UINTN *DataSize
4304 );
4305
4338typedef
4339BOOLEAN
4341 IN VOID *RsaContext,
4342 IN CONST UINT8 *Message,
4343 IN UINTN MsgSize,
4344 IN UINT16 DigestLen,
4345 IN UINT16 SaltLen,
4346 OUT UINT8 *Signature,
4347 IN OUT UINTN *SigSize
4348 );
4349
4368typedef
4369BOOLEAN
4371 IN VOID *RsaContext,
4372 IN CONST UINT8 *Message,
4373 IN UINTN MsgSize,
4374 IN CONST UINT8 *Signature,
4375 IN UINTN SigSize,
4376 IN UINT16 DigestLen,
4377 IN UINT16 SaltLen
4378 );
4379
4397typedef
4398BOOLEAN
4400 IN CONST VOID *Input,
4401 IN UINTN InputByteLen,
4402 IN UINTN BlockSize,
4403 OUT VOID *Output,
4404 IN UINTN OutputByteLen,
4405 IN CONST VOID *Customization,
4406 IN UINTN CustomByteLen
4407 );
4408
4433typedef
4434BOOLEAN
4436 IN CONST UINT8 *Key,
4437 IN UINTN KeySize,
4438 IN CONST UINT8 *Iv,
4439 IN UINTN IvSize,
4440 IN CONST UINT8 *AData,
4441 IN UINTN ADataSize,
4442 IN CONST UINT8 *DataIn,
4443 IN UINTN DataInSize,
4444 OUT UINT8 *TagOut,
4445 IN UINTN TagSize,
4446 OUT UINT8 *DataOut,
4447 OUT UINTN *DataOutSize
4448 );
4449
4475typedef
4476BOOLEAN
4478 IN CONST UINT8 *Key,
4479 IN UINTN KeySize,
4480 IN CONST UINT8 *Iv,
4481 IN UINTN IvSize,
4482 IN CONST UINT8 *AData,
4483 IN UINTN ADataSize,
4484 IN CONST UINT8 *DataIn,
4485 IN UINTN DataInSize,
4486 IN CONST UINT8 *Tag,
4487 IN UINTN TagSize,
4488 OUT UINT8 *DataOut,
4489 OUT UINTN *DataOutSize
4490 );
4491
4492// =====================================================================================
4493// Big Number Primitive
4494// =====================================================================================
4495
4501typedef
4502VOID *
4503(EFIAPI *EDKII_CRYPTO_BIGNUM_INIT)(
4504 VOID
4505 );
4506
4515typedef
4516VOID *
4518 IN CONST UINT8 *Buf,
4519 IN UINTN Len
4520 );
4521
4531typedef
4534 IN CONST VOID *Bn,
4535 OUT UINT8 *Buf
4536 );
4537
4544typedef
4545VOID
4546(EFIAPI *EDKII_CRYPTO_BIGNUM_FREE)(
4547 IN VOID *Bn,
4548 IN BOOLEAN Clear
4549 );
4550
4561typedef
4562BOOLEAN
4563(EFIAPI *EDKII_CRYPTO_BIGNUM_ADD)(
4564 IN CONST VOID *BnA,
4565 IN CONST VOID *BnB,
4566 OUT VOID *BnRes
4567 );
4568
4579typedef
4580BOOLEAN
4581(EFIAPI *EDKII_CRYPTO_BIGNUM_SUB)(
4582 IN CONST VOID *BnA,
4583 IN CONST VOID *BnB,
4584 OUT VOID *BnRes
4585 );
4586
4597typedef
4598BOOLEAN
4599(EFIAPI *EDKII_CRYPTO_BIGNUM_MOD)(
4600 IN CONST VOID *BnA,
4601 IN CONST VOID *BnB,
4602 OUT VOID *BnRes
4603 );
4604
4616typedef
4617BOOLEAN
4619 IN CONST VOID *BnA,
4620 IN CONST VOID *BnP,
4621 IN CONST VOID *BnM,
4622 OUT VOID *BnRes
4623 );
4624
4635typedef
4636BOOLEAN
4638 IN CONST VOID *BnA,
4639 IN CONST VOID *BnM,
4640 OUT VOID *BnRes
4641 );
4642
4653typedef
4654BOOLEAN
4655(EFIAPI *EDKII_CRYPTO_BIGNUM_DIV)(
4656 IN CONST VOID *BnA,
4657 IN CONST VOID *BnB,
4658 OUT VOID *BnRes
4659 );
4660
4672typedef
4673BOOLEAN
4675 IN CONST VOID *BnA,
4676 IN CONST VOID *BnB,
4677 IN CONST VOID *BnM,
4678 OUT VOID *BnRes
4679 );
4680
4691typedef
4693(EFIAPI *EDKII_CRYPTO_BIGNUM_CMP)(
4694 IN CONST VOID *BnA,
4695 IN CONST VOID *BnB
4696 );
4697
4705typedef
4707(EFIAPI *EDKII_CRYPTO_BIGNUM_BITS)(
4708 IN CONST VOID *Bn
4709 );
4710
4718typedef
4721 IN CONST VOID *Bn
4722 );
4723
4733typedef
4734BOOLEAN
4736 IN CONST VOID *Bn,
4737 IN UINTN Num
4738 );
4739
4748typedef
4749BOOLEAN
4751 IN CONST VOID *Bn
4752 );
4753
4763typedef
4764VOID *
4765(EFIAPI *EDKII_CRYPTO_BIGNUM_COPY)(
4766 OUT VOID *BnDst,
4767 IN CONST VOID *BnSrc
4768 );
4769
4776typedef
4777CONST VOID *
4779 VOID
4780 );
4781
4794typedef
4795BOOLEAN
4797 IN CONST VOID *Bn,
4798 IN UINTN N,
4799 OUT VOID *BnRes
4800 );
4801
4809typedef
4810VOID
4812 IN VOID *Bn
4813 );
4814
4825typedef
4826BOOLEAN
4828 IN CONST VOID *BnA,
4829 IN CONST VOID *BnM,
4830 OUT VOID *BnRes
4831 );
4832
4840typedef
4841VOID *
4843 VOID
4844 );
4845
4851typedef
4852VOID
4854 IN VOID *BnCtx
4855 );
4856
4866typedef
4867BOOLEAN
4869 IN VOID *Bn,
4870 IN UINTN Val
4871 );
4872
4884typedef
4885BOOLEAN
4887 IN CONST VOID *BnA,
4888 IN CONST VOID *BnB,
4889 IN CONST VOID *BnM,
4890 OUT VOID *BnRes
4891 );
4892
4904typedef
4905VOID *
4907 IN UINTN CryptoNid
4908 );
4909
4925typedef
4926BOOLEAN
4928 IN CONST VOID *EcGroup,
4929 OUT VOID *BnPrime,
4930 OUT VOID *BnA,
4931 OUT VOID *BnB,
4932 IN VOID *BnCtx
4933 );
4934
4947typedef
4948BOOLEAN
4950 IN VOID *EcGroup,
4951 OUT VOID *BnOrder
4952 );
4953
4959typedef
4960VOID
4962 IN VOID *EcGroup
4963 );
4964
4974typedef
4975VOID *
4977 IN CONST VOID *EcGroup
4978 );
4979
4986typedef
4987VOID
4989 IN VOID *EcPoint,
4990 IN BOOLEAN Clear
4991 );
4992
5008typedef
5009BOOLEAN
5011 IN CONST VOID *EcGroup,
5012 IN CONST VOID *EcPoint,
5013 OUT VOID *BnX,
5014 OUT VOID *BnY,
5015 IN VOID *BnCtx
5016 );
5017
5030typedef
5031BOOLEAN
5033 IN CONST VOID *EcGroup,
5034 IN VOID *EcPoint,
5035 IN CONST VOID *BnX,
5036 IN CONST VOID *BnY,
5037 IN VOID *BnCtx
5038 );
5039
5053typedef
5054BOOLEAN
5056 IN CONST VOID *EcGroup,
5057 OUT VOID *EcPointResult,
5058 IN CONST VOID *EcPointA,
5059 IN CONST VOID *EcPointB,
5060 IN VOID *BnCtx
5061 );
5062
5076typedef
5077BOOLEAN
5079 IN CONST VOID *EcGroup,
5080 OUT VOID *EcPointResult,
5081 IN CONST VOID *EcPoint,
5082 IN CONST VOID *BnPScalar,
5083 IN VOID *BnCtx
5084 );
5085
5096typedef
5097BOOLEAN
5099 IN CONST VOID *EcGroup,
5100 IN OUT VOID *EcPoint,
5101 IN VOID *BnCtx
5102 );
5103
5114typedef
5115BOOLEAN
5117 IN CONST VOID *EcGroup,
5118 IN CONST VOID *EcPoint,
5119 IN VOID *BnCtx
5120 );
5121
5132typedef
5133BOOLEAN
5135 IN CONST VOID *EcGroup,
5136 IN CONST VOID *EcPoint
5137 );
5138
5150typedef
5151BOOLEAN
5153 IN CONST VOID *EcGroup,
5154 IN CONST VOID *EcPointA,
5155 IN CONST VOID *EcPointB,
5156 IN VOID *BnCtx
5157 );
5158
5176typedef
5177BOOLEAN
5179 IN CONST VOID *EcGroup,
5180 IN VOID *EcPoint,
5181 IN CONST VOID *BnX,
5182 IN UINT8 YBit,
5183 IN VOID *BnCtx
5184 );
5185
5194typedef
5195VOID *
5197 IN UINTN Nid
5198 );
5199
5205typedef
5206VOID
5207(EFIAPI *EDKII_CRYPTO_EC_FREE)(
5208 IN VOID *EcContext
5209 );
5210
5237typedef
5238BOOLEAN
5240 IN OUT VOID *EcContext,
5241 OUT UINT8 *PublicKey,
5242 IN OUT UINTN *PublicKeySize
5243 );
5244
5259typedef
5260BOOLEAN
5262 IN OUT VOID *EcContext,
5263 OUT UINT8 *PublicKey,
5264 IN OUT UINTN *PublicKeySize
5265 );
5266
5292typedef
5293BOOLEAN
5295 IN OUT VOID *EcContext,
5296 IN CONST UINT8 *PeerPublic,
5297 IN UINTN PeerPublicSize,
5298 IN CONST INT32 *CompressFlag,
5299 OUT UINT8 *Key,
5300 IN OUT UINTN *KeySize
5301 );
5302
5319typedef
5320BOOLEAN
5322 IN CONST UINT8 *Cert,
5323 IN UINTN CertSize,
5324 OUT VOID **EcContext
5325 );
5326
5344typedef
5345BOOLEAN
5347 IN CONST UINT8 *PemData,
5348 IN UINTN PemSize,
5349 IN CONST CHAR8 *Password,
5350 OUT VOID **EcContext
5351 );
5352
5382typedef
5383BOOLEAN
5384(EFIAPI *EDKII_CRYPTO_EC_DSA_SIGN)(
5385 IN VOID *EcContext,
5386 IN UINTN HashNid,
5387 IN CONST UINT8 *MessageHash,
5388 IN UINTN HashSize,
5389 OUT UINT8 *Signature,
5390 IN OUT UINTN *SigSize
5391 );
5392
5416typedef
5417BOOLEAN
5419 IN VOID *EcContext,
5420 IN UINTN HashNid,
5421 IN CONST UINT8 *MessageHash,
5422 IN UINTN HashSize,
5423 IN CONST UINT8 *Signature,
5424 IN UINTN SigSize
5425 );
5426
5435 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FREE DeprecatedHmacMd5Free;
5436 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_SET_KEY DeprecatedHmacMd5SetKey;
5437 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_DUPLICATE DeprecatedHmacMd5Duplicate;
5438 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_UPDATE DeprecatedHmacMd5Update;
5439 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FINAL DeprecatedHmacMd5Final;
5442 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FREE DeprecatedHmacSha1Free;
5443 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_SET_KEY DeprecatedHmacSha1SetKey;
5444 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_DUPLICATE DeprecatedHmacSha1Duplicate;
5445 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_UPDATE DeprecatedHmacSha1Update;
5446 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FINAL DeprecatedHmacSha1Final;
5449 EDKII_CRYPTO_HMAC_SHA256_FREE HmacSha256Free;
5450 EDKII_CRYPTO_HMAC_SHA256_SET_KEY HmacSha256SetKey;
5451 EDKII_CRYPTO_HMAC_SHA256_DUPLICATE HmacSha256Duplicate;
5452 EDKII_CRYPTO_HMAC_SHA256_UPDATE HmacSha256Update;
5453 EDKII_CRYPTO_HMAC_SHA256_FINAL HmacSha256Final;
5456 DEPRECATED_EDKII_CRYPTO_MD4_INIT DeprecatedMd4Init;
5457 DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE DeprecatedMd4Duplicate;
5458 DEPRECATED_EDKII_CRYPTO_MD4_UPDATE DeprecatedMd4Update;
5459 DEPRECATED_EDKII_CRYPTO_MD4_FINAL DeprecatedMd4Final;
5460 DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL DeprecatedMd4HashAll;
5463 EDKII_CRYPTO_MD5_INIT Md5Init;
5464 EDKII_CRYPTO_MD5_DUPLICATE Md5Duplicate;
5465 EDKII_CRYPTO_MD5_UPDATE Md5Update;
5466 EDKII_CRYPTO_MD5_FINAL Md5Final;
5467 EDKII_CRYPTO_MD5_HASH_ALL Md5HashAll;
5470 EDKII_CRYPTO_PKCS5_PW_HASH Pkcs5HashPassword;
5471 EDKII_CRYPTO_PKCS7_VERIFY Pkcs7Verify;
5472 EDKII_CRYPTO_PKCS7_VERIFY_EKU VerifyEKUsInPkcs7Signature;
5473 EDKII_CRYPTO_PKCS7_GET_SIGNERS Pkcs7GetSigners;
5474 EDKII_CRYPTO_PKCS7_FREE_SIGNERS Pkcs7FreeSigners;
5475 EDKII_CRYPTO_PKCS7_SIGN Pkcs7Sign;
5476 EDKII_CRYPTO_PKCS7_GET_ATTACHED_CONTENT Pkcs7GetAttachedContent;
5477 EDKII_CRYPTO_PKCS7_GET_CERTIFICATES_LIST Pkcs7GetCertificatesList;
5478 EDKII_CRYPTO_AUTHENTICODE_VERIFY AuthenticodeVerify;
5479 EDKII_CRYPTO_IMAGE_TIMESTAMP_VERIFY ImageTimestampVerify;
5482 EDKII_CRYPTO_DH_FREE DhFree;
5483 EDKII_CRYPTO_DH_GENERATE_PARAMETER DhGenerateParameter;
5484 EDKII_CRYPTO_DH_SET_PARAMETER DhSetParameter;
5485 EDKII_CRYPTO_DH_GENERATE_KEY DhGenerateKey;
5486 EDKII_CRYPTO_DH_COMPUTE_KEY DhComputeKey;
5489 EDKII_CRYPTO_RANDOM_BYTES RandomBytes;
5492 EDKII_CRYPTO_RSA_NEW RsaNew;
5493 EDKII_CRYPTO_RSA_FREE RsaFree;
5494 EDKII_CRYPTO_RSA_SET_KEY RsaSetKey;
5495 EDKII_CRYPTO_RSA_GET_KEY RsaGetKey;
5496 EDKII_CRYPTO_RSA_GENERATE_KEY RsaGenerateKey;
5497 EDKII_CRYPTO_RSA_CHECK_KEY RsaCheckKey;
5498 EDKII_CRYPTO_RSA_PKCS1_SIGN RsaPkcs1Sign;
5499 EDKII_CRYPTO_RSA_PKCS1_VERIFY RsaPkcs1Verify;
5500 EDKII_CRYPTO_RSA_GET_PRIVATE_KEY_FROM_PEM RsaGetPrivateKeyFromPem;
5501 EDKII_CRYPTO_RSA_GET_PUBLIC_KEY_FROM_X509 RsaGetPublicKeyFromX509;
5504 EDKII_CRYPTO_SHA1_INIT Sha1Init;
5505 EDKII_CRYPTO_SHA1_DUPLICATE Sha1Duplicate;
5506 EDKII_CRYPTO_SHA1_UPDATE Sha1Update;
5507 EDKII_CRYPTO_SHA1_FINAL Sha1Final;
5508 EDKII_CRYPTO_SHA1_HASH_ALL Sha1HashAll;
5511 EDKII_CRYPTO_SHA256_INIT Sha256Init;
5512 EDKII_CRYPTO_SHA256_DUPLICATE Sha256Duplicate;
5513 EDKII_CRYPTO_SHA256_UPDATE Sha256Update;
5514 EDKII_CRYPTO_SHA256_FINAL Sha256Final;
5515 EDKII_CRYPTO_SHA256_HASH_ALL Sha256HashAll;
5518 EDKII_CRYPTO_SHA384_INIT Sha384Init;
5519 EDKII_CRYPTO_SHA384_DUPLICATE Sha384Duplicate;
5520 EDKII_CRYPTO_SHA384_UPDATE Sha384Update;
5521 EDKII_CRYPTO_SHA384_FINAL Sha384Final;
5522 EDKII_CRYPTO_SHA384_HASH_ALL Sha384HashAll;
5525 EDKII_CRYPTO_SHA512_INIT Sha512Init;
5526 EDKII_CRYPTO_SHA512_DUPLICATE Sha512Duplicate;
5527 EDKII_CRYPTO_SHA512_UPDATE Sha512Update;
5528 EDKII_CRYPTO_SHA512_FINAL Sha512Final;
5529 EDKII_CRYPTO_SHA512_HASH_ALL Sha512HashAll;
5532 EDKII_CRYPTO_X509_GET_COMMON_NAME X509GetCommonName;
5533 EDKII_CRYPTO_X509_GET_ORGANIZATION_NAME X509GetOrganizationName;
5534 EDKII_CRYPTO_X509_VERIFY_CERT X509VerifyCert;
5535 EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE X509ConstructCertificate;
5536 EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK X509ConstructCertificateStack;
5537 EDKII_CRYPTO_X509_FREE X509Free;
5538 EDKII_CRYPTO_X509_STACK_FREE X509StackFree;
5539 EDKII_CRYPTO_X509_GET_TBS_CERT X509GetTBSCert;
5542 DEPRECATED_EDKII_CRYPTO_TDES_INIT DeprecatedTdesInit;
5543 DEPRECATED_EDKII_CRYPTO_TDES_ECB_ENCRYPT DeprecatedTdesEcbEncrypt;
5544 DEPRECATED_EDKII_CRYPTO_TDES_ECB_DECRYPT DeprecatedTdesEcbDecrypt;
5545 DEPRECATED_EDKII_CRYPTO_TDES_CBC_ENCRYPT DeprecatedTdesCbcEncrypt;
5546 DEPRECATED_EDKII_CRYPTO_TDES_CBC_DECRYPT DeprecatedTdesCbcDecrypt;
5549 EDKII_CRYPTO_AES_INIT AesInit;
5550 DEPRECATED_EDKII_CRYPTO_AES_ECB_ENCRYPT DeprecatedAesEcbEncrypt;
5551 DEPRECATED_EDKII_CRYPTO_AES_ECB_DECRYPT DeprecatedAesEcbDecrypt;
5552 EDKII_CRYPTO_AES_CBC_ENCRYPT AesCbcEncrypt;
5553 EDKII_CRYPTO_AES_CBC_DECRYPT AesCbcDecrypt;
5556 DEPRECATED_EDKII_CRYPTO_ARC4_INIT DeprecatedArc4Init;
5557 DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT DeprecatedArc4Encrypt;
5558 DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT DeprecatedArc4Decrypt;
5559 DEPRECATED_EDKII_CRYPTO_ARC4_RESET DeprecatedArc4Reset;
5562 EDKII_CRYPTO_SM3_INIT Sm3Init;
5563 EDKII_CRYPTO_SM3_DUPLICATE Sm3Duplicate;
5564 EDKII_CRYPTO_SM3_UPDATE Sm3Update;
5565 EDKII_CRYPTO_SM3_FINAL Sm3Final;
5566 EDKII_CRYPTO_SM3_HASH_ALL Sm3HashAll;
5573 EDKII_CRYPTO_TLS_CTX_FREE TlsCtxFree;
5574 EDKII_CRYPTO_TLS_CTX_NEW TlsCtxNew;
5575 EDKII_CRYPTO_TLS_FREE TlsFree;
5576 EDKII_CRYPTO_TLS_NEW TlsNew;
5577 EDKII_CRYPTO_TLS_IN_HANDSHAKE TlsInHandshake;
5578 EDKII_CRYPTO_TLS_DO_HANDSHAKE TlsDoHandshake;
5579 EDKII_CRYPTO_TLS_HANDLE_ALERT TlsHandleAlert;
5580 EDKII_CRYPTO_TLS_CLOSE_NOTIFY TlsCloseNotify;
5581 EDKII_CRYPTO_TLS_CTRL_TRAFFIC_OUT TlsCtrlTrafficOut;
5582 EDKII_CRYPTO_TLS_CTRL_TRAFFIC_IN TlsCtrlTrafficIn;
5583 EDKII_CRYPTO_TLS_READ TlsRead;
5584 EDKII_CRYPTO_TLS_WRITE TlsWrite;
5587 EDKII_CRYPTO_TLS_SET_CONNECTION_END TlsSetConnectionEnd;
5588 EDKII_CRYPTO_TLS_SET_CIPHER_LIST TlsSetCipherList;
5589 EDKII_CRYPTO_TLS_SET_COMPRESSION_METHOD TlsSetCompressionMethod;
5590 EDKII_CRYPTO_TLS_SET_VERIFY TlsSetVerify;
5591 EDKII_CRYPTO_TLS_SET_VERIFY_HOST TlsSetVerifyHost;
5592 EDKII_CRYPTO_TLS_SET_SESSIONID TlsSetSessionId;
5593 EDKII_CRYPTO_TLS_SET_CA_CERTIFICATE TlsSetCaCertificate;
5594 EDKII_CRYPTO_TLS_SET_HOST_PUBLIC_CERT TlsSetHostPublicCert;
5595 EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY TlsSetHostPrivateKey;
5596 EDKII_CRYPTO_TLS_SET_CERT_REVOCATION_LIST TlsSetCertRevocationList;
5599 EDKII_CRYPTO_TLS_GET_CONNECTION_END TlsGetConnectionEnd;
5600 EDKII_CRYPTO_TLS_GET_CURRENT_CIPHER TlsGetCurrentCipher;
5601 EDKII_CRYPTO_TLS_GET_CURRENT_COMPRESSION_ID TlsGetCurrentCompressionId;
5602 EDKII_CRYPTO_TLS_GET_VERIFY TlsGetVerify;
5603 EDKII_CRYPTO_TLS_GET_SESSION_ID TlsGetSessionId;
5604 EDKII_CRYPTO_TLS_GET_CLIENT_RANDOM TlsGetClientRandom;
5605 EDKII_CRYPTO_TLS_GET_SERVER_RANDOM TlsGetServerRandom;
5606 EDKII_CRYPTO_TLS_GET_KEY_MATERIAL TlsGetKeyMaterial;
5607 EDKII_CRYPTO_TLS_GET_CA_CERTIFICATE TlsGetCaCertificate;
5608 EDKII_CRYPTO_TLS_GET_HOST_PUBLIC_CERT TlsGetHostPublicCert;
5609 EDKII_CRYPTO_TLS_GET_HOST_PRIVATE_KEY TlsGetHostPrivateKey;
5610 EDKII_CRYPTO_TLS_GET_CERT_REVOCATION_LIST TlsGetCertRevocationList;
5613 EDKII_CRYPTO_RSA_PSS_VERIFY RsaPssVerify;
5620 EDKII_CRYPTO_HMAC_SHA384_FREE HmacSha384Free;
5621 EDKII_CRYPTO_HMAC_SHA384_SET_KEY HmacSha384SetKey;
5622 EDKII_CRYPTO_HMAC_SHA384_DUPLICATE HmacSha384Duplicate;
5623 EDKII_CRYPTO_HMAC_SHA384_UPDATE HmacSha384Update;
5624 EDKII_CRYPTO_HMAC_SHA384_FINAL HmacSha384Final;
5625 EDKII_CRYPTO_HMAC_SHA384_ALL HmacSha384All;
5628 EDKII_CRYPTO_HKDF_SHA_256_EXPAND HkdfSha256Expand;
5629 EDKII_CRYPTO_HKDF_SHA_384_EXTRACT_AND_EXPAND HkdfSha384ExtractAndExpand;
5630 EDKII_CRYPTO_HKDF_SHA_384_EXTRACT HkdfSha384Extract;
5631 EDKII_CRYPTO_HKDF_SHA_384_EXPAND HkdfSha384Expand;
5634 EDKII_AEAD_AES_GCM_DECRYPT AeadAesGcmDecrypt;
5637 EDKII_CRYPTO_BIGNUM_FROM_BIN BigNumFromBin;
5638 EDKII_CRYPTO_BIGNUM_TO_BIN BigNumToBin;
5639 EDKII_CRYPTO_BIGNUM_FREE BigNumFree;
5640 EDKII_CRYPTO_BIGNUM_ADD BigNumAdd;
5641 EDKII_CRYPTO_BIGNUM_SUB BigNumSub;
5642 EDKII_CRYPTO_BIGNUM_MOD BigNumMod;
5643 EDKII_CRYPTO_BIGNUM_EXP_MOD BigNumExpMod;
5644 EDKII_CRYPTO_BIGNUM_INVERSE_MOD BigNumInverseMod;
5645 EDKII_CRYPTO_BIGNUM_DIV BigNumDiv;
5646 EDKII_CRYPTO_BIGNUM_MUL_MOD BigNumMulMod;
5647 EDKII_CRYPTO_BIGNUM_CMP BigNumCmp;
5648 EDKII_CRYPTO_BIGNUM_BITS BigNumBits;
5649 EDKII_CRYPTO_BIGNUM_BYTES BigNumBytes;
5650 EDKII_CRYPTO_BIGNUM_IS_WORD BigNumIsWord;
5651 EDKII_CRYPTO_BIGNUM_IS_ODD BigNumIsOdd;
5652 EDKII_CRYPTO_BIGNUM_COPY BigNumCopy;
5653 EDKII_CRYPTO_BIGNUM_VALUE_ONE BigNumValueOne;
5654 EDKII_CRYPTO_BIGNUM_R_SHIFT BigNumRShift;
5655 EDKII_CRYPTO_BIGNUM_CONST_TIME BigNumConstTime;
5656 EDKII_CRYPTO_BIGNUM_SQR_MOD BigNumSqrMod;
5657 EDKII_CRYPTO_BIGNUM_NEW_CONTEXT BigNumNewContext;
5658 EDKII_CRYPTO_BIGNUM_CONTEXT_FREE BigNumContextFree;
5659 EDKII_CRYPTO_BIGNUM_SET_UINT BigNumSetUint;
5660 EDKII_CRYPTO_BIGNUM_ADD_MOD BigNumAddMod;
5663 EDKII_CRYPTO_EC_GROUP_GET_CURVE EcGroupGetCurve;
5664 EDKII_CRYPTO_EC_GROUP_GET_ORDER EcGroupGetOrder;
5665 EDKII_CRYPTO_EC_GROUP_FREE EcGroupFree;
5666 EDKII_CRYPTO_EC_POINT_INIT EcPointInit;
5667 EDKII_CRYPTO_EC_POINT_DE_INIT EcPointDeInit;
5668 EDKII_CRYPTO_EC_POINT_GET_AFFINE_COORDINATES EcPointGetAffineCoordinates;
5669 EDKII_CRYPTO_EC_POINT_SET_AFFINE_COORDINATES EcPointSetAffineCoordinates;
5670 EDKII_CRYPTO_EC_POINT_ADD EcPointAdd;
5671 EDKII_CRYPTO_EC_POINT_MUL EcPointMul;
5672 EDKII_CRYPTO_EC_POINT_INVERT EcPointInvert;
5673 EDKII_CRYPTO_EC_POINT_IS_ON_CURVE EcPointIsOnCurve;
5674 EDKII_CRYPTO_EC_POINT_IS_AT_INFINITY EcPointIsAtInfinity;
5675 EDKII_CRYPTO_EC_POINT_EQUAL EcPointEqual;
5676 EDKII_CRYPTO_EC_POINT_SET_COMPRESSED_COORDINATES EcPointSetCompressedCoordinates;
5677 EDKII_CRYPTO_EC_NEW_BY_NID EcNewByNid;
5678 EDKII_CRYPTO_EC_FREE EcFree;
5679 EDKII_CRYPTO_EC_GENERATE_KEY EcGenerateKey;
5680 EDKII_CRYPTO_EC_GET_PUB_KEY EcGetPubKey;
5681 EDKII_CRYPTO_EC_DH_COMPUTE_KEY EcDhComputeKey;
5686 EDKII_CRYPTO_TLS_SET_SIGNATURE_ALGO_LIST TlsSetSignatureAlgoList;
5687 EDKII_CRYPTO_TLS_SET_EC_CURVE TlsSetEcCurve;
5692 EDKII_CRYPTO_EC_GET_PRIVATE_KEY_FROM_PEM EcGetPrivateKeyFromPem;
5693 EDKII_CRYPTO_EC_DSA_SIGN EcDsaSign;
5694 EDKII_CRYPTO_EC_DSA_VERIFY EcDsaVerify;
5697 EDKII_CRYPTO_X509_GET_SERIAL_NUMBER X509GetSerialNumber;
5698 EDKII_CRYPTO_X509_GET_ISSUER_NAME X509GetIssuerName;
5699 EDKII_CRYPTO_X509_GET_SIGNATURE_ALGORITHM X509GetSignatureAlgorithm;
5700 EDKII_CRYPTO_X509_GET_EXTENSION_DATA X509GetExtensionData;
5701 EDKII_CRYPTO_X509_GET_EXTENDED_KEY_USAGE X509GetExtendedKeyUsage;
5702 EDKII_CRYPTO_X509_GET_VALIDITY X509GetValidity;
5703 EDKII_CRYPTO_X509_FORMAT_DATE_TIME X509FormatDateTime;
5704 EDKII_CRYPTO_X509_COMPARE_DATE_TIME X509CompareDateTime;
5705 EDKII_CRYPTO_X509_GET_KEY_USAGE X509GetKeyUsage;
5706 EDKII_CRYPTO_X509_VERIFY_CERT_CHAIN X509VerifyCertChain;
5707 EDKII_CRYPTO_X509_GET_CERT_FROM_CERT_CHAIN X509GetCertFromCertChain;
5708 EDKII_CRYPTO_ASN1_GET_TAG Asn1GetTag;
5709 EDKII_CRYPTO_X509_GET_EXTENDED_BASIC_CONSTRAINTS X509GetExtendedBasicConstraints;
5710 EDKII_CRYPTO_PKCS1V2_DECRYPT Pkcs1v2Decrypt;
5711 EDKII_CRYPTO_RSA_OAEP_ENCRYPT RsaOaepEncrypt;
5712 EDKII_CRYPTO_RSA_OAEP_DECRYPT RsaOaepDecrypt;
5713};
5714
5715extern GUID gEdkiiCryptoProtocolGuid;
5716
5717#endif
UINT64 UINTN
INT64 INTN
RSA_KEY_TAG
Definition: BaseCryptLib.h:74
VOID EFIAPI Input(IN CHAR16 *Prompt OPTIONAL, OUT CHAR16 *InStr, IN UINTN StrLen)
Definition: EdbSupportUI.c:187
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
CHAR8 * VA_LIST
Definition: Base.h:643
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
BOOLEAN(EFIAPI * EDKII_CRYPTO_TLS_IN_HANDSHAKE)(IN VOID *Tls)
Definition: Crypto.h:3477
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXPAND)(IN CONST UINT8 *Prk, IN UINTN PrkSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
Definition: Crypto.h:3293
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_CBC_DECRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
Definition: Crypto.h:3032
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SUB)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
Definition: Crypto.h:4581
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_VERIFY_PKCS1)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
Definition: Crypto.h:1379
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PUBLIC_KEY_FROM_X509)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT VOID **EcContext)
Definition: Crypto.h:5321
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_SIGNATURE_ALGO_LIST)(IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize)
Definition: Crypto.h:4227
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_DO_HANDSHAKE)(IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize)
Definition: Crypto.h:3509
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_CONTEXT_FREE)(IN VOID *BnCtx)
Definition: Crypto.h:4853
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_HANDLE_ALERT)(IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize)
Definition: Crypto.h:3544
UINTN(EFIAPI * EDKII_CRYPTO_AES_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:2905
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_SIGN)(IN CONST UINT8 *PrivateKey, IN UINTN PrivateKeySize, IN CONST UINT8 *KeyPassword, IN UINT8 *InData, IN UINTN InDataSize, IN UINT8 *SignCert, IN UINT8 *OtherCerts OPTIONAL, OUT UINT8 **SignedData, OUT UINTN *SignedDataSize)
Definition: Crypto.h:1003
UINTN(EFIAPI * EDKII_CRYPTO_SHA256_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:1813
BOOLEAN(EFIAPI * EDKII_CRYPTO_PARALLEL_HASH_ALL)(IN CONST VOID *Input, IN UINTN InputByteLen, IN UINTN BlockSize, OUT VOID *Output, IN UINTN OutputByteLen, IN CONST VOID *Customization, IN UINTN CustomByteLen)
Definition: Crypto.h:4399
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK)(IN OUT UINT8 **X509Stack,...)
Definition: Crypto.h:2373
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_UPDATE)(IN OUT VOID *Md5Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:589
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_KEY_MATERIAL)(IN VOID *Tls, IN OUT UINT8 *KeyMaterial)
Definition: Crypto.h:4130
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_EXP_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnP, IN CONST VOID *BnM, OUT VOID *BnRes)
Definition: Crypto.h:4618
EFI_STATUS(EFIAPI * EDKII_CRYPTO_X509_GET_ORGANIZATION_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT CHAR8 *NameBuffer OPTIONAL, IN OUT UINTN *NameBufferSize)
Definition: Crypto.h:2295
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_COMPRESSION_METHOD)(IN UINT8 CompMethod)
Definition: Crypto.h:3769
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_SIGNERS)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT UINT8 **CertStack, OUT UINTN *StackLength, OUT UINT8 **TrustedCert, OUT UINTN *CertLength)
Definition: Crypto.h:951
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_UPDATE)(IN OUT VOID *Sha256Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:1877
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_HOST_PRIVATE_KEY)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
Definition: Crypto.h:4202
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_INIT)(OUT VOID *AesContext, IN CONST UINT8 *Key, IN UINTN KeyLength)
Definition: Crypto.h:2933
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 **SingleX509Cert)
Definition: Crypto.h:2347
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_HOST_PUBLIC_CERT)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
Definition: Crypto.h:4178
VOID(EFIAPI * EDKII_CRYPTO_TLS_SET_VERIFY)(IN VOID *Tls, IN UINT32 VerifyMode)
Definition: Crypto.h:3784
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_DUPLICATE)(IN CONST VOID *Sha256Context, OUT VOID *NewSha256Context)
Definition: Crypto.h:1852
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_FINAL)(IN OUT VOID *HmacSha256Context, OUT UINT8 *HmacValue)
Definition: Crypto.h:264
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_GENERATE_KEY)(IN OUT VOID *DhContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
Definition: Crypto.h:1266
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_VALIDITY)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN UINT8 *From, IN OUT UINTN *FromSize, IN UINT8 *To, IN OUT UINTN *ToSize)
Definition: Crypto.h:2649
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CERT_REVOCATION_LIST)(OUT VOID *DATA, IN OUT UINTN *DataSize)
Definition: Crypto.h:4301
VOID *(EFIAPI * EDKII_CRYPTO_EC_GROUP_INIT)(IN UINTN CryptoNid)
Definition: Crypto.h:4906
UINT8(EFIAPI * EDKII_CRYPTO_TLS_GET_CONNECTION_END)(IN VOID *Tls)
Definition: Crypto.h:3988
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:468
UINT16(EFIAPI * EDKII_CRYPTO_TLS_GET_VERSION)(IN VOID *Tls)
Definition: Crypto.h:3969
BOOLEAN(EFIAPI * EDKII_AEAD_AES_GCM_ENCRYPT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Iv, IN UINTN IvSize, IN CONST UINT8 *AData, IN UINTN ADataSize, IN CONST UINT8 *DataIn, IN UINTN DataInSize, OUT UINT8 *TagOut, IN UINTN TagSize, OUT UINT8 *DataOut, OUT UINTN *DataOutSize)
Definition: Crypto.h:4435
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_NEW_CONTEXT)(VOID)
Definition: Crypto.h:4842
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:3047
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_DUPLICATE)(IN CONST VOID *HmacSha384Context, OUT VOID *NewHmacSha384Context)
Definition: Crypto.h:365
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GENERATE_KEY)(IN OUT VOID *EcContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
Definition: Crypto.h:5239
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_IS_ODD)(IN CONST VOID *Bn)
Definition: Crypto.h:4750
VOID(EFIAPI * EDKII_CRYPTO_EC_FREE)(IN VOID *EcContext)
Definition: Crypto.h:5207
VOID *(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_NEW)(VOID)
Definition: Crypto.h:150
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PUB_KEY)(IN OUT VOID *EcContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
Definition: Crypto.h:5261
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_TDES_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:2844
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:644
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_ATTACHED_CONTENT)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT VOID **Content, OUT UINTN *ContentSize)
Definition: Crypto.h:1038
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CIPHER_LIST)(IN VOID *Tls, IN UINT16 *CipherId, IN UINTN CipherNum)
Definition: Crypto.h:3749
UINTN(EFIAPI * EDKII_CRYPTO_BIGNUM_BYTES)(IN CONST VOID *Bn)
Definition: Crypto.h:4720
BOOLEAN(EFIAPI * EDKII_CRYPTO_AUTHENTICODE_VERIFY)(IN CONST UINT8 *AuthData, IN UINTN DataSize, IN CONST UINT8 *TrustedCert, IN UINTN CertSize, IN CONST UINT8 *ImageHash, IN UINTN HashSize)
Definition: Crypto.h:1104
INTN(EFIAPI * EDKII_CRYPTO_TLS_WRITE)(IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize)
Definition: Crypto.h:3662
VOID(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_FREE)(IN VOID *HmacSha384Ctx)
Definition: Crypto.h:320
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_SESSION_ID)(IN VOID *Tls, IN OUT UINT8 *SessionId, IN OUT UINT16 *SessionIdLen)
Definition: Crypto.h:4072
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SHUTDOWN)(IN VOID *Tls)
Definition: Crypto.h:3683
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_CERTIFICATES_LIST)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT UINT8 **SignerChainCerts, OUT UINTN *ChainLength, OUT UINT8 **UnchainCerts, OUT UINTN *UnchainLength)
Definition: Crypto.h:1069
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_INIT)(OUT VOID *Sha1Context)
Definition: Crypto.h:1696
VOID(EFIAPI * EDKII_CRYPTO_X509_FREE)(IN VOID *X509Cert)
Definition: Crypto.h:2414
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK_V)(IN OUT UINT8 **X509Stack, IN VA_LIST Args)
Definition: Crypto.h:2399
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SUBJECT_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *CertSubject, IN OUT UINTN *SubjectSize)
Definition: Crypto.h:2225
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_ADD)(IN CONST VOID *EcGroup, OUT VOID *EcPointResult, IN CONST VOID *EcPointA, IN CONST VOID *EcPointB, IN VOID *BnCtx)
Definition: Crypto.h:5055
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CONNECTION_END)(IN VOID *Tls, IN BOOLEAN IsServer)
Definition: Crypto.h:3724
VOID *(EFIAPI * EDKII_CRYPTO_DH_NEW)(VOID)
Definition: Crypto.h:1157
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_INIT)(OUT VOID *Sha256Context)
Definition: Crypto.h:1831
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PKCS1_SIGN)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
Definition: Crypto.h:1570
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_DUPLICATE)(IN CONST VOID *HmacSha256Context, OUT VOID *NewHmacSha256Context)
Definition: Crypto.h:207
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DH_COMPUTE_KEY)(IN OUT VOID *EcContext, IN CONST UINT8 *PeerPublic, IN UINTN PeerPublicSize, IN CONST INT32 *CompressFlag, OUT UINT8 *Key, IN OUT UINTN *KeySize)
Definition: Crypto.h:5294
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PSS_VERIFY)(IN VOID *RsaContext, IN CONST UINT8 *Message, IN UINTN MsgSize, IN CONST UINT8 *Signature, IN UINTN SigSize, IN UINT16 DigestLen, IN UINT16 SaltLen)
Definition: Crypto.h:4370
BOOLEAN(EFIAPI * EDKII_CRYPTO_RANDOM_SEED)(IN CONST UINT8 *Seed OPTIONAL, IN UINTN SeedSize)
Definition: Crypto.h:1332
UINTN(EFIAPI * EDKII_CRYPTO_SM3_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:3094
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CURRENT_CIPHER)(IN VOID *Tls, IN OUT UINT16 *CipherId)
Definition: Crypto.h:4008
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SERIAL_NUMBER)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *SerialNumber, OPTIONAL IN OUT UINTN *SerialNumberSize)
Definition: Crypto.h:2507
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CURRENT_COMPRESSION_ID)(IN VOID *Tls, IN OUT UINT8 *CompressionId)
Definition: Crypto.h:4031
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_ALL)(IN CONST VOID *Data, IN UINTN DataSize, IN CONST UINT8 *Key, IN UINTN KeySize, OUT UINT8 *HmacValue)
Definition: Crypto.h:449
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS1V2_DECRYPT)(IN CONST UINT8 *PrivateKey, IN UINTN PrivateKeySize, IN UINT8 *EncryptedData, IN UINTN EncryptedDataSize, OUT UINT8 **OutData, OUT UINTN *OutDataSize)
Definition: Crypto.h:710
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_SET_KEY)(OUT VOID *HmacSha384Context, IN CONST UINT8 *Key, IN UINTN KeySize)
Definition: Crypto.h:342
INT32(EFIAPI * EDKII_CRYPTO_X509_COMPARE_DATE_TIME)(IN CONST VOID *DateTime1, IN CONST VOID *DateTime2)
Definition: Crypto.h:2707
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PUBLIC_CERT)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:3876
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CERT_REVOCATION_LIST)(IN VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:3949
EFI_STATUS(EFIAPI * EDKII_CRYPTO_PKCS7_VERIFY_EKU)(IN CONST UINT8 *Pkcs7Signature, IN CONST UINT32 SignatureSize, IN CONST CHAR8 *RequiredEKUs[], IN CONST UINT32 RequiredEKUsSize, IN BOOLEAN RequireAllPresent)
Definition: Crypto.h:915
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_EXPORT_KEY)(IN VOID *Tls, IN CONST VOID *Label, IN CONST VOID *Context, IN UINTN ContextLen, OUT VOID *KeyBuffer, IN UINTN KeyBufferLen)
Definition: Crypto.h:4275
BOOLEAN(EFIAPI * EDKII_CRYPTO_ASN1_GET_TAG)(IN OUT UINT8 **Ptr, IN CONST UINT8 *End, OUT UINTN *Length, IN UINT32 Tag)
Definition: Crypto.h:2799
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_FROM_BIN)(IN CONST UINT8 *Buf, IN UINTN Len)
Definition: Crypto.h:4517
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_MUL)(IN CONST VOID *EcGroup, OUT VOID *EcPointResult, IN CONST VOID *EcPoint, IN CONST VOID *BnPScalar, IN VOID *BnCtx)
Definition: Crypto.h:5078
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_R_SHIFT)(IN CONST VOID *Bn, IN UINTN N, OUT VOID *BnRes)
Definition: Crypto.h:4796
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_CBC_ENCRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
Definition: Crypto.h:2993
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_FINAL)(IN OUT VOID *Md5Context, OUT UINT8 *HashValue)
Definition: Crypto.h:619
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_ALL)(IN CONST VOID *Data, IN UINTN DataSize, IN CONST UINT8 *Key, IN UINTN KeySize, OUT UINT8 *HmacValue)
Definition: Crypto.h:291
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_SET_AFFINE_COORDINATES)(IN CONST VOID *EcGroup, IN VOID *EcPoint, IN CONST VOID *BnX, IN CONST VOID *BnY, IN VOID *BnCtx)
Definition: Crypto.h:5032
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
Definition: Crypto.h:4599
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:1930
VOID(EFIAPI * EDKII_CRYPTO_DH_FREE)(IN VOID *DhContext)
Definition: Crypto.h:1171
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CA_CERTIFICATE)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
Definition: Crypto.h:4153
BOOLEAN(EFIAPI * DEPRECATED_EDKII_CRYPTO_AES_ECB_ENCRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, OUT UINT8 *Output)
Definition: Crypto.h:2946
INTN(EFIAPI * EDKII_CRYPTO_TLS_CTRL_TRAFFIC_IN)(IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize)
Definition: Crypto.h:3616
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_COPY)(OUT VOID *BnDst, IN CONST VOID *BnSrc)
Definition: Crypto.h:4765
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXTRACT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, OUT UINT8 *PrkOut, UINTN PrkOutSize)
Definition: Crypto.h:3349
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_FREE)(IN VOID *Bn, IN BOOLEAN Clear)
Definition: Crypto.h:4546
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_UPDATE)(IN OUT VOID *Sha512Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:2141
BOOLEAN(EFIAPI * EDKII_CRYPTO_IMAGE_TIMESTAMP_VERIFY)(IN CONST UINT8 *AuthData, IN UINTN DataSize, IN CONST UINT8 *TsaCert, IN UINTN CertSize, OUT EFI_TIME *SigningTime)
Definition: Crypto.h:1135
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:3217
CONST VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_VALUE_ONE)(VOID)
Definition: Crypto.h:4778
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_UPDATE)(IN OUT VOID *Sha384Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:2010
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_CONST_TIME)(IN VOID *Bn)
Definition: Crypto.h:4811
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_UPDATE)(IN OUT VOID *HmacSha384Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:392
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_FINAL)(IN OUT VOID *Sha256Context, OUT UINT8 *HashValue)
Definition: Crypto.h:1905
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXTRACT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, OUT UINT8 *PrkOut, UINTN PrkOutSize)
Definition: Crypto.h:3268
VOID *(EFIAPI * DEPRECATED_EDKII_CRYPTO_HMAC_MD5_NEW)(VOID)
Definition: Crypto.h:54
VOID(EFIAPI * EDKII_CRYPTO_EC_POINT_DE_INIT)(IN VOID *EcPoint, IN BOOLEAN Clear)
Definition: Crypto.h:4988
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_PUBLIC_KEY_FROM_X509)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT VOID **RsaContext)
Definition: Crypto.h:1655
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_VERIFY_CERT_CHAIN)(IN CONST UINT8 *RootCert, IN UINTN RootCertLength, IN CONST UINT8 *CertChain, IN UINTN CertChainLength)
Definition: Crypto.h:2751
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_UPDATE)(IN OUT VOID *Sm3Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:3162
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DSA_SIGN)(IN VOID *EcContext, IN UINTN HashNid, IN CONST UINT8 *MessageHash, IN UINTN HashSize, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
Definition: Crypto.h:5384
UINT32(EFIAPI * EDKII_CRYPTO_TLS_GET_VERIFY)(IN VOID *Tls)
Definition: Crypto.h:4051
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXTRACT_AND_EXPAND)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
Definition: Crypto.h:3241
VOID(EFIAPI * EDKII_CRYPTO_EC_GROUP_FREE)(IN VOID *EcGroup)
Definition: Crypto.h:4961
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_VERSION)(IN VOID *Tls, IN UINT8 MajorVer, IN UINT8 MinorVer)
Definition: Crypto.h:3703
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY_EX)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize, IN VOID *Password OPTIONAL)
Definition: Crypto.h:3902
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENSION_DATA)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN CONST UINT8 *Oid, IN UINTN OidSize, OUT UINT8 *ExtensionData, IN OUT UINTN *ExtensionDataSize)
Definition: Crypto.h:2591
VOID *(EFIAPI * EDKII_CRYPTO_EC_NEW_BY_NID)(IN UINTN Nid)
Definition: Crypto.h:5196
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_GET_AFFINE_COORDINATES)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint, OUT VOID *BnX, OUT VOID *BnY, IN VOID *BnCtx)
Definition: Crypto.h:5010
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:1799
VOID(EFIAPI * EDKII_CRYPTO_PKCS7_FREE_SIGNERS)(IN UINT8 *Certs)
Definition: Crypto.h:970
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_INVERT)(IN CONST VOID *EcGroup, IN OUT VOID *EcPoint, IN VOID *BnCtx)
Definition: Crypto.h:5098
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_DUPLICATE)(IN CONST VOID *Md5Context, OUT VOID *NewMd5Context)
Definition: Crypto.h:562
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SET_UINT)(IN VOID *Bn, IN UINTN Val)
Definition: Crypto.h:4868
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_UPDATE)(IN OUT VOID *HmacSha256Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:234
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_OAEP_ENCRYPT)(IN VOID *RsaContext, IN UINT8 *InData, IN UINTN InDataSize, IN CONST UINT8 *PrngSeed OPTIONAL, IN UINTN PrngSeedSize OPTIONAL, IN UINT16 DigestLen OPTIONAL, OUT UINT8 **EncryptedData, OUT UINTN *EncryptedDataSize)
Definition: Crypto.h:750
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PRIVATE_KEY_FROM_PEM)(IN CONST UINT8 *PemData, IN UINTN PemSize, IN CONST CHAR8 *Password, OUT VOID **EcContext)
Definition: Crypto.h:5346
UINTN(EFIAPI * EDKII_CRYPTO_BIGNUM_BITS)(IN CONST VOID *Bn)
Definition: Crypto.h:4707
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENDED_BASIC_CONSTRAINTS)(CONST UINT8 *Cert, UINTN CertSize, UINT8 *BasicConstraints, UINTN *BasicConstraintsSize)
Definition: Crypto.h:2826
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS1_ENCRYPT_V2)(IN CONST UINT8 *PublicKey, IN UINTN PublicKeySize, IN UINT8 *InData, IN UINTN InDataSize, IN CONST UINT8 *PrngSeed OPTIONAL, IN UINTN PrngSeedSize OPTIONAL, OUT UINT8 **EncryptedData, OUT UINTN *EncryptedDataSize)
Definition: Crypto.h:680
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GENERATE_KEY)(IN OUT VOID *RsaContext, IN UINTN ModulusLength, IN CONST UINT8 *PublicExponent, IN UINTN PublicExponentSize)
Definition: Crypto.h:1507
VOID(EFIAPI * EDKII_CRYPTO_TLS_CTX_FREE)(IN VOID *TlsCtx)
Definition: Crypto.h:3408
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_INVERSE_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnM, OUT VOID *BnRes)
Definition: Crypto.h:4637
VOID *(EFIAPI * EDKII_CRYPTO_RSA_NEW)(VOID)
Definition: Crypto.h:1396
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_TBS_CERT)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 **TBSCert, OUT UINTN *TBSCertSize)
Definition: Crypto.h:2451
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:2063
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_FINAL)(IN OUT VOID *HmacSha384Context, OUT UINT8 *HmacValue)
Definition: Crypto.h:422
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_INIT)(VOID)
Definition: Crypto.h:4503
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_INIT)(OUT VOID *Sm3Context)
Definition: Crypto.h:3114
UINTN(EFIAPI * EDKII_CRYPTO_GET_VERSION)(VOID)
Definition: Crypto.h:39
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_FINAL)(IN OUT VOID *Sm3Context, OUT UINT8 *HashValue)
Definition: Crypto.h:3192
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_GENERATE_PARAMETER)(IN OUT VOID *DhContext, IN UINTN Generator, IN UINTN PrimeLength, OUT UINT8 *Prime)
Definition: Crypto.h:1201
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_INIT)(OUT VOID *Sha384Context)
Definition: Crypto.h:1964
VOID *(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_NEW)(VOID)
Definition: Crypto.h:308
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_PRIVATE_KEY_FROM_PEM)(IN CONST UINT8 *PemData, IN UINTN PemSize, IN CONST CHAR8 *Password, OUT VOID **RsaContext)
Definition: Crypto.h:1628
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_ADD_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, IN CONST VOID *BnM, OUT VOID *BnRes)
Definition: Crypto.h:4886
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_DIV)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
Definition: Crypto.h:4655
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PSS_SIGN)(IN VOID *RsaContext, IN CONST UINT8 *Message, IN UINTN MsgSize, IN UINT16 DigestLen, IN UINT16 SaltLen, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
Definition: Crypto.h:4340
VOID(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_FREE)(IN VOID *HmacSha256Ctx)
Definition: Crypto.h:162
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_VERIFY_HOST)(IN VOID *Tls, IN UINT32 Flags, IN CHAR8 *HostName)
Definition: Crypto.h:3803
VOID *(EFIAPI * EDKII_CRYPTO_TLS_NEW)(IN VOID *TlsCtx)
Definition: Crypto.h:3460
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_DUPLICATE)(IN CONST VOID *Sha1Context, OUT VOID *NewSha1Context)
Definition: Crypto.h:1717
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_FINAL)(IN OUT VOID *Sha384Context, OUT UINT8 *HashValue)
Definition: Crypto.h:2038
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_COMPUTE_KEY)(IN OUT VOID *DhContext, IN CONST UINT8 *PeerPublicKey, IN UINTN PeerPublicKeySize, OUT UINT8 *Key, IN OUT UINTN *KeySize)
Definition: Crypto.h:1300
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_IS_ON_CURVE)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint, IN VOID *BnCtx)
Definition: Crypto.h:5116
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_ADD)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
Definition: Crypto.h:4563
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SIGNATURE_ALGORITHM)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *Oid, OPTIONAL IN OUT UINTN *OidSize)
Definition: Crypto.h:2562
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_SET_COMPRESSED_COORDINATES)(IN CONST VOID *EcGroup, IN VOID *EcPoint, IN CONST VOID *BnX, IN UINT8 YBit, IN VOID *BnCtx)
Definition: Crypto.h:5178
BOOLEAN(EFIAPI * EDKII_AEAD_AES_GCM_DECRYPT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Iv, IN UINTN IvSize, IN CONST UINT8 *AData, IN UINTN ADataSize, IN CONST UINT8 *DataIn, IN UINTN DataInSize, IN CONST UINT8 *Tag, IN UINTN TagSize, OUT UINT8 *DataOut, OUT UINTN *DataOutSize)
Definition: Crypto.h:4477
VOID *(EFIAPI * EDKII_CRYPTO_TLS_CTX_NEW)(IN UINT8 MajorVer, IN UINT8 MinorVer)
Definition: Crypto.h:3425
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_CHECK_KEY)(IN VOID *RsaContext)
Definition: Crypto.h:1537
BOOLEAN(EFIAPI * EDKII_CRYPTO_TLS_INITIALIZE)(VOID)
Definition: Crypto.h:3396
VOID(EFIAPI * EDKII_CRYPTO_TLS_GET_SERVER_RANDOM)(IN VOID *Tls, IN OUT UINT8 *ServerRandom)
Definition: Crypto.h:4109
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_VERIFY)(IN CONST UINT8 *P7Data, IN UINTN P7DataLength, IN CONST UINT8 *TrustedCert, IN UINTN TrustedCertLength, IN CONST UINT8 *Data, IN UINTN DataLength)
Definition: Crypto.h:865
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_IS_WORD)(IN CONST VOID *Bn, IN UINTN Num)
Definition: Crypto.h:4735
UINTN(EFIAPI * EDKII_CRYPTO_SHA384_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:1946
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENDED_KEY_USAGE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *Usage, IN OUT UINTN *UsageSize)
Definition: Crypto.h:2619
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_FORMAT_DATE_TIME)(IN CONST CHAR8 *DateTimeStr, OUT VOID *DateTime, IN OUT UINTN *DateTimeSize)
Definition: Crypto.h:2683
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CA_CERTIFICATE)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:3851
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SQR_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnM, OUT VOID *BnRes)
Definition: Crypto.h:4827
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_CERT_FROM_CERT_CHAIN)(IN CONST UINT8 *CertChain, IN UINTN CertChainLength, IN CONST INT32 CertIndex, OUT CONST UINT8 **Cert, OUT UINTN *CertLength)
Definition: Crypto.h:2778
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:3927
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_EQUAL)(IN CONST VOID *EcGroup, IN CONST VOID *EcPointA, IN CONST VOID *EcPointB, IN VOID *BnCtx)
Definition: Crypto.h:5152
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXPAND)(IN CONST UINT8 *Prk, IN UINTN PrkSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
Definition: Crypto.h:3374
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_UPDATE)(IN OUT VOID *Sha1Context, IN CONST VOID *Data, IN UINTN DataSize)
Definition: Crypto.h:1744
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXTRACT_AND_EXPAND)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
Definition: Crypto.h:3320
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_VERIFY_CERT)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN CONST UINT8 *CACert, IN UINTN CACertSize)
Definition: Crypto.h:2322
VOID(EFIAPI * EDKII_CRYPTO_TLS_FREE)(IN VOID *Tls)
Definition: Crypto.h:3441
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_MUL_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, IN CONST VOID *BnM, OUT VOID *BnRes)
Definition: Crypto.h:4674
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS5_PW_HASH)(IN UINTN PasswordSize, IN CONST CHAR8 *Password, IN UINTN SaltSize, IN CONST UINT8 *Salt, IN UINTN IterationCount, IN UINTN DigestSize, IN UINTN OutputSize, OUT UINT8 *Output)
Definition: Crypto.h:827
INTN(EFIAPI * EDKII_CRYPTO_TLS_READ)(IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize)
Definition: Crypto.h:3639
VOID *(EFIAPI * EDKII_CRYPTO_EC_POINT_INIT)(IN CONST VOID *EcGroup)
Definition: Crypto.h:4976
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PKCS1_VERIFY)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
Definition: Crypto.h:1599
BOOLEAN(EFIAPI * EDKII_CRYPTO_RANDOM_BYTES)(OUT UINT8 *Output, IN UINTN Size)
Definition: Crypto.h:1353
VOID(EFIAPI * EDKII_CRYPTO_X509_STACK_FREE)(IN VOID *X509Stack)
Definition: Crypto.h:2428
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_CLOSE_NOTIFY)(IN VOID *Tls, IN OUT UINT8 *Buffer, IN OUT UINTN *BufferSize)
Definition: Crypto.h:3572
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_OAEP_DECRYPT)(IN VOID *RsaContext, IN UINT8 *EncryptedData, IN UINTN EncryptedDataSize, IN UINT16 DigestLen OPTIONAL, OUT UINT8 **OutData, OUT UINTN *OutDataSize)
Definition: Crypto.h:786
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
Definition: Crypto.h:2194
UINTN(EFIAPI * EDKII_CRYPTO_MD5_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:521
VOID(EFIAPI * EDKII_CRYPTO_TLS_GET_CLIENT_RANDOM)(IN VOID *Tls, IN OUT UINT8 *ClientRandom)
Definition: Crypto.h:4091
INTN(EFIAPI * EDKII_CRYPTO_TLS_CTRL_TRAFFIC_OUT)(IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize)
Definition: Crypto.h:3594
INTN(EFIAPI * EDKII_CRYPTO_BIGNUM_CMP)(IN CONST VOID *BnA, IN CONST VOID *BnB)
Definition: Crypto.h:4693
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_FINAL)(IN OUT VOID *Sha1Context, OUT UINT8 *HashValue)
Definition: Crypto.h:1774
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_FINAL)(IN OUT VOID *Sha512Context, OUT UINT8 *HashValue)
Definition: Crypto.h:2169
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_ISSUER_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *CertIssuer, IN OUT UINTN *CertIssuerSize)
Definition: Crypto.h:2535
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DSA_VERIFY)(IN VOID *EcContext, IN UINTN HashNid, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
Definition: Crypto.h:5418
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_VERSION)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINTN *Version)
Definition: Crypto.h:2476
VOID *(EFIAPI * DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_NEW)(VOID)
Definition: Crypto.h:101
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GROUP_GET_CURVE)(IN CONST VOID *EcGroup, OUT VOID *BnPrime, OUT VOID *BnA, OUT VOID *BnB, IN VOID *BnCtx)
Definition: Crypto.h:4927
VOID(EFIAPI * EDKII_CRYPTO_RSA_FREE)(IN VOID *RsaContext)
Definition: Crypto.h:1410
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_DUPLICATE)(IN CONST VOID *Sha512Context, OUT VOID *NewSha512Context)
Definition: Crypto.h:2116
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_KEY)(IN OUT VOID *RsaContext, IN RSA_KEY_TAG KeyTag, OUT UINT8 *BigNumber, IN OUT UINTN *BnSize)
Definition: Crypto.h:1475
UINTN(EFIAPI * EDKII_CRYPTO_SHA512_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:2077
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_INIT)(OUT VOID *Md5Context)
Definition: Crypto.h:541
EFI_STATUS(EFIAPI * EDKII_CRYPTO_X509_GET_COMMON_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT CHAR8 *CommonName OPTIONAL, IN OUT UINTN *CommonNameSize)
Definition: Crypto.h:2260
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_DUPLICATE)(IN CONST VOID *Sha384Context, OUT VOID *NewSha384Context)
Definition: Crypto.h:1985
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_DUPLICATE)(IN CONST VOID *Sm3Context, OUT VOID *NewSm3Context)
Definition: Crypto.h:3135
INTN(EFIAPI * EDKII_CRYPTO_BIGNUM_TO_BIN)(IN CONST VOID *Bn, OUT UINT8 *Buf)
Definition: Crypto.h:4533
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GROUP_GET_ORDER)(IN VOID *EcGroup, OUT VOID *BnOrder)
Definition: Crypto.h:4949
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_SET_KEY)(IN OUT VOID *RsaContext, IN RSA_KEY_TAG KeyTag, IN CONST UINT8 *BigNumber, IN UINTN BnSize)
Definition: Crypto.h:1438
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_EC_CURVE)(IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize)
Definition: Crypto.h:4249
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_SET_PARAMETER)(IN OUT VOID *DhContext, IN UINTN Generator, IN UINTN PrimeLength, IN CONST UINT8 *Prime)
Definition: Crypto.h:1233
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_SESSIONID)(IN VOID *Tls, IN UINT8 *SessionId, IN UINT16 SessionIdLen)
Definition: Crypto.h:3826
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_SET_KEY)(OUT VOID *HmacSha256Context, IN CONST UINT8 *Key, IN UINTN KeySize)
Definition: Crypto.h:184
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_INIT)(OUT VOID *Sha512Context)
Definition: Crypto.h:2095
UINTN(EFIAPI * EDKII_CRYPTO_SHA1_GET_CONTEXT_SIZE)(VOID)
Definition: Crypto.h:1676
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_KEY_USAGE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINTN *Usage)
Definition: Crypto.h:2725
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_IS_AT_INFINITY)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint)
Definition: Crypto.h:5134
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
EDKII_CRYPTO_EC_GROUP_INIT EcGroupInit
EC.
Definition: Crypto.h:5662
EDKII_CRYPTO_RSA_PSS_SIGN RsaPssSign
RSA PSS.
Definition: Crypto.h:5612
EDKII_AEAD_AES_GCM_ENCRYPT AeadAesGcmEncrypt
AEAD AES-GCM.
Definition: Crypto.h:5633
EDKII_CRYPTO_GET_VERSION GetVersion
Version.
Definition: Crypto.h:5432
EDKII_CRYPTO_X509_GET_VERSION X509GetVersion
X509 (Continued)
Definition: Crypto.h:5696
EDKII_CRYPTO_MD5_GET_CONTEXT_SIZE Md5GetContextSize
Md5.
Definition: Crypto.h:5462
EDKII_CRYPTO_SM3_GET_CONTEXT_SIZE Sm3GetContextSize
SM3.
Definition: Crypto.h:5561
EDKII_CRYPTO_BIGNUM_INIT BigNumInit
BIGNUM.
Definition: Crypto.h:5636
DEPRECATED_EDKII_CRYPTO_HMAC_MD5_NEW DeprecatedHmacMd5New
HMAC MD5 - deprecated and unsupported.
Definition: Crypto.h:5434
DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_NEW DeprecatedHmacSha1New
HMAC SHA1 - deprecated and unsupported.
Definition: Crypto.h:5441
EDKII_CRYPTO_HMAC_SHA384_NEW HmacSha384New
HMAC SHA384.
Definition: Crypto.h:5619
EDKII_CRYPTO_DH_NEW DhNew
DH.
Definition: Crypto.h:5481
EDKII_CRYPTO_TLS_INITIALIZE TlsInitialize
TLS.
Definition: Crypto.h:5572
EDKII_CRYPTO_PKCS1_ENCRYPT_V2 Pkcs1v2Encrypt
Pkcs.
Definition: Crypto.h:5469
EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK_V X509ConstructCertificateStackV
X509 (Continued)
Definition: Crypto.h:5570
DEPRECATED_EDKII_CRYPTO_TDES_GET_CONTEXT_SIZE DeprecatedTdesGetContextSize
TDES - deprecated and unsupported.
Definition: Crypto.h:5541
EDKII_CRYPTO_TLS_SET_VERSION TlsSetVersion
TLS Set.
Definition: Crypto.h:5586
EDKII_CRYPTO_X509_GET_SUBJECT_NAME X509GetSubjectName
X509.
Definition: Crypto.h:5531
EDKII_CRYPTO_SHA1_GET_CONTEXT_SIZE Sha1GetContextSize
Sha1.
Definition: Crypto.h:5503
DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE DeprecatedArc4GetContextSize
Arc4 - deprecated and unsupported.
Definition: Crypto.h:5555
EDKII_CRYPTO_TLS_GET_VERSION TlsGetVersion
TLS Get.
Definition: Crypto.h:5598
EDKII_CRYPTO_TLS_SHUTDOWN TlsShutdown
TLS (continued)
Definition: Crypto.h:5683
EDKII_CRYPTO_AES_GET_CONTEXT_SIZE AesGetContextSize
AES - ECB Mode is deprecated and unsupported.
Definition: Crypto.h:5548
EDKII_CRYPTO_HKDF_SHA_256_EXTRACT_AND_EXPAND HkdfSha256ExtractAndExpand
HKDF.
Definition: Crypto.h:5568
EDKII_CRYPTO_SHA256_GET_CONTEXT_SIZE Sha256GetContextSize
Sha256.
Definition: Crypto.h:5510
EDKII_CRYPTO_SHA512_GET_CONTEXT_SIZE Sha512GetContextSize
Sha512.
Definition: Crypto.h:5524
EDKII_CRYPTO_HMAC_SHA256_NEW HmacSha256New
HMAC SHA256.
Definition: Crypto.h:5448
DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE DeprecatedMd4GetContextSize
Md4 - deprecated and unsupported.
Definition: Crypto.h:5455
EDKII_CRYPTO_TLS_GET_EXPORT_KEY TlsGetExportKey
TLS Get (continued)
Definition: Crypto.h:5689
EDKII_CRYPTO_EC_GET_PUBLIC_KEY_FROM_X509 EcGetPublicKeyFromX509
Ec (Continued)
Definition: Crypto.h:5691
EDKII_CRYPTO_HMAC_SHA256_ALL HmacSha256All
HMAC SHA256 (continued)
Definition: Crypto.h:5617
EDKII_CRYPTO_HKDF_SHA_256_EXTRACT HkdfSha256Extract
HKDF (continued)
Definition: Crypto.h:5627
EDKII_CRYPTO_RSA_VERIFY_PKCS1 RsaVerifyPkcs1
RSA.
Definition: Crypto.h:5491
EDKII_CRYPTO_SHA384_GET_CONTEXT_SIZE Sha384GetContextSize
Sha384.
Definition: Crypto.h:5517
EDKII_CRYPTO_PARALLEL_HASH_ALL ParallelHash256HashAll
Parallel hash.
Definition: Crypto.h:5615
EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY_EX TlsSetHostPrivateKeyEx
TLS Set (continued)
Definition: Crypto.h:5685
EDKII_CRYPTO_RANDOM_SEED RandomSeed
Random.
Definition: Crypto.h:5488
Definition: Base.h:213