XenevaOS
Loading...
Searching...
No Matches
SmartCardEdge.h
Go to the documentation of this file.
1
23#ifndef __SMART_CARD_EDGE_H__
24#define __SMART_CARD_EDGE_H__
25
26#define EFI_SMART_CARD_EDGE_PROTOCOL_GUID \
27 { \
28 0xd317f29b, 0xa325, 0x4712, {0x9b, 0xf1, 0xc6, 0x19, 0x54, 0xdc, 0x19, 0x8c} \
29 }
30
32
33//
34// Maximum size for a Smart Card AID (Application IDentifier)
35//
36#define SCARD_AID_MAXSIZE 0x0010
37//
38// Size of CSN (Card Serial Number)
39//
40#define SCARD_CSN_SIZE 0x0010
41//
42// Current specification version 1.00
43//
44#define SMART_CARD_EDGE_PROTOCOL_VERSION_1 0x00000100
45//
46// Parameters type definition
47//
50
51//
52// Type of data elements in credentials list
53//
54// value of tag field for header, the number of containers
55//
56#define SC_EDGE_TAG_HEADER 0x0000
57//
58// value of tag field for certificate
59//
60#define SC_EDGE_TAG_CERT 0x0001
61//
62// value of tag field for key index associated with certificate
63//
64#define SC_EDGE_TAG_KEY_ID 0x0002
65//
66// value of tag field for key type
67//
68#define SC_EDGE_TAG_KEY_TYPE 0x0003
69//
70// value of tag field for key size
71//
72#define SC_EDGE_TAG_KEY_SIZE 0x0004
73
74//
75// Length of L fields of TLV items
76//
77//
78// size of L field for header
79//
80#define SC_EDGE_L_SIZE_HEADER 1
81//
82// size of L field for certificate (big endian)
83//
84#define SC_EDGE_L_SIZE_CERT 2
85//
86// size of L field for key index
87//
88#define SC_EDGE_L_SIZE_KEY_ID 1
89//
90// size of L field for key type
91//
92#define SC_EDGE_L_SIZE_KEY_TYPE 1
93//
94// size of L field for key size (big endian)
95//
96#define SC_EDGE_L_SIZE_KEY_SIZE 2
97
98//
99// Some TLV items have a fixed value for L field
100//
101// value of L field for header
102//
103#define SC_EDGE_L_VALUE_HEADER 1
104//
105// value of L field for key index
106//
107#define SC_EDGE_L_VALUE_KEY_ID 1
108//
109// value of L field for key type
110//
111#define SC_EDGE_L_VALUE_KEY_TYPE 1
112//
113// value of L field for key size
114//
115#define SC_EDGE_L_VALUE_KEY_SIZE 2
116
117//
118// Possible values for key type
119//
120//
121// RSA decryption
122//
123#define SC_EDGE_RSA_EXCHANGE 0x01
124//
125// RSA signature
126//
127#define SC_EDGE_RSA_SIGNATURE 0x02
128//
129// ECDSA signature
130//
131#define SC_EDGE_ECDSA_256 0x03
132//
133// ECDSA signature
134//
135#define SC_EDGE_ECDSA_384 0x04
136//
137// ECDSA signature
138//
139#define SC_EDGE_ECDSA_521 0x05
140//
141// ECDH agreement
142//
143#define SC_EDGE_ECDH_256 0x06
144//
145// ECDH agreement
146//
147#define SC_EDGE_ECDH_384 0x07
148//
149// ECDH agreement
150//
151#define SC_EDGE_ECDH_521 0x08
152
153//
154// Padding methods GUIDs for signature
155//
156//
157// RSASSA- PKCS#1-V1.5 padding method, for signature
158//
159#define EFI_PADDING_RSASSA_PKCS1V1P5_GUID \
160 { \
161 0x9317ec24, 0x7cb0, 0x4d0e, {0x8b, 0x32, 0x2e, 0xd9, 0x20, 0x9c, 0xd8, 0xaf} \
162 }
163
165
166//
167// RSASSA-PSS padding method, for signature
168//
169#define EFI_PADDING_RSASSA_PSS_GUID \
170 { \
171 0x7b2349e0, 0x522d, 0x4f8e, {0xb9, 0x27, 0x69, 0xd9, 0x7c, 0x9e, 0x79, 0x5f} \
172 }
173
175
176//
177// Padding methods GUIDs for decryption
178//
179//
180// No padding, for decryption
181//
182#define EFI_PADDING_NONE_GUID \
183 { \
184 0x3629ddb1, 0x228c, 0x452e, {0xb6, 0x16, 0x09, 0xed, 0x31, 0x6a, 0x97, 0x00} \
185 }
186
188
189//
190// RSAES-PKCS#1-V1.5 padding, for decryption
191//
192#define EFI_PADDING_RSAES_PKCS1V1P5_GUID \
193 { \
194 0xe1c1d0a9, 0x40b1, 0x4632, {0xbd, 0xcc, 0xd9, 0xd6, 0xe5, 0x29, 0x56, 0x31} \
195 }
196
198
199//
200// RSAES-OAEP padding, for decryption
201//
202#define EFI_PADDING_RSAES_OAEP_GUID \
203 { \
204 0xc1e63ac4, 0xd0cf, 0x4ce6, {0x83, 0x5b, 0xee, 0xd0, 0xe6, 0xa8, 0xa4, 0x5b} \
205 }
206
208
252typedef
256 OUT UINTN *NumberAidSupported,
257 IN OUT UINTN *AidTableSize OPTIONAL,
258 OUT SMART_CARD_AID *AidTable OPTIONAL,
259 OUT UINTN *NumberSCPresent,
260 IN OUT UINTN *CsnTableSize OPTIONAL,
261 OUT SMART_CARD_CSN *CsnTable OPTIONAL,
262 OUT UINT32 *VersionScEdgeProtocol OPTIONAL
263 );
264
294typedef
298 OUT EFI_HANDLE *SCardHandle,
299 IN UINT8 *ScardCsn OPTIONAL,
300 OUT UINT8 *ScardAid OPTIONAL
301 );
302
318typedef
322 IN EFI_HANDLE SCardHandle
323 );
324
339typedef
343 IN EFI_HANDLE SCardHandle,
345 );
346
366typedef
370 IN EFI_HANDLE SCardHandle,
371 IN OUT UINTN *ReaderNameLength,
372 OUT CHAR16 *ReaderName OPTIONAL
373 );
374
416typedef
420 IN EFI_HANDLE SCardHandle,
421 IN INT32 PinSize,
422 IN UINT8 *PinCode,
423 OUT BOOLEAN *PinResult,
424 OUT UINT32 *RemainingAttempts OPTIONAL
425 );
426
447typedef
451 IN EFI_HANDLE SCardHandle,
452 OUT UINT32 *RemainingAttempts
453 );
454
486typedef
490 IN EFI_HANDLE SCardHandle,
491 IN EFI_GUID *DataId,
492 IN OUT UINTN *DataSize,
493 OUT VOID *Data OPTIONAL
494 );
495
537typedef
541 IN EFI_HANDLE SCardHandle,
542 IN OUT UINTN *CredentialSize,
543 OUT UINT8 *CredentialList OPTIONAL
544 );
545
595typedef
599 IN EFI_HANDLE SCardHandle,
600 IN UINTN KeyId,
601 IN UINTN KeyType,
602 IN EFI_GUID *HashAlgorithm,
603 IN EFI_GUID *PaddingMethod,
604 IN UINT8 *HashedData,
605 OUT UINT8 *SignatureData
606 );
607
659typedef
663 IN EFI_HANDLE SCardHandle,
664 IN UINTN KeyId,
665 IN EFI_GUID *HashAlgorithm,
666 IN EFI_GUID *PaddingMethod,
667 IN UINTN EncryptedSize,
668 IN UINT8 *EncryptedData,
669 IN OUT UINTN *PlaintextSize,
670 OUT UINT8 *PlaintextData
671 );
672
709typedef
713 IN EFI_HANDLE SCardHandle,
714 IN UINTN KeyId,
715 IN UINT8 *dataQx,
716 IN UINT8 *dataQy,
717 OUT UINT8 *DHAgreement
718 );
719
738
740
741#endif
742
UINT64 UINTN
Definition ProcessorBind.h:118
int INT32
Definition ProcessorBind.h:103
unsigned short CHAR16
Definition ProcessorBind.h:105
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_READER_NAME)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN OUT UINTN *ReaderNameLength, OUT CHAR16 *ReaderName OPTIONAL)
Definition SmartCardEdge.h:368
EFI_GUID gEfiSmartCardEdgeProtocolGuid
#define SCARD_AID_MAXSIZE
Definition SmartCardEdge.h:36
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_CONTEXT)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, OUT UINTN *NumberAidSupported, IN OUT UINTN *AidTableSize OPTIONAL, OUT SMART_CARD_AID *AidTable OPTIONAL, OUT UINTN *NumberSCPresent, IN OUT UINTN *CsnTableSize OPTIONAL, OUT SMART_CARD_CSN *CsnTable OPTIONAL, OUT UINT32 *VersionScEdgeProtocol OPTIONAL)
Definition SmartCardEdge.h:254
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_VERIFY_PIN)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN INT32 PinSize, IN UINT8 *PinCode, OUT BOOLEAN *PinResult, OUT UINT32 *RemainingAttempts OPTIONAL)
Definition SmartCardEdge.h:418
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_CSN)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, OUT UINT8 Csn[SCARD_CSN_SIZE])
Definition SmartCardEdge.h:341
UINT8 SMART_CARD_CSN[SCARD_CSN_SIZE]
Definition SmartCardEdge.h:49
UINT8 SMART_CARD_AID[SCARD_AID_MAXSIZE]
Definition SmartCardEdge.h:48
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_PIN_REMAINING)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, OUT UINT32 *RemainingAttempts)
Definition SmartCardEdge.h:449
#define SCARD_CSN_SIZE
Definition SmartCardEdge.h:40
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_SIGN_DATA)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN UINTN KeyId, IN UINTN KeyType, IN EFI_GUID *HashAlgorithm, IN EFI_GUID *PaddingMethod, IN UINT8 *HashedData, OUT UINT8 *SignatureData)
Definition SmartCardEdge.h:597
EFI_GUID gEfiPaddingNoneGuid
EFI_GUID gEfiPaddingRsassaPkcs1V1P5Guid
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_DISCONNECT)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle)
Definition SmartCardEdge.h:320
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_CREDENTIAL)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN OUT UINTN *CredentialSize, OUT UINT8 *CredentialList OPTIONAL)
Definition SmartCardEdge.h:539
EFI_GUID gEfiPaddingRsassaPssGuid
EFI_GUID gEfiPaddingRsaesOaepGuid
EFI_GUID gEfiPaddingRsaesPkcs1V1P5Guid
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_BUILD_DH_AGREEMENT)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN UINTN KeyId, IN UINT8 *dataQx, IN UINT8 *dataQy, OUT UINT8 *DHAgreement)
Definition SmartCardEdge.h:711
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_GET_DATA)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN EFI_GUID *DataId, IN OUT UINTN *DataSize, OUT VOID *Data OPTIONAL)
Definition SmartCardEdge.h:488
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_CONNECT)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, OUT EFI_HANDLE *SCardHandle, IN UINT8 *ScardCsn OPTIONAL, OUT UINT8 *ScardAid OPTIONAL)
Definition SmartCardEdge.h:296
EFI_STATUS(EFIAPI * EFI_SMART_CARD_EDGE_DECRYPT_DATA)(IN EFI_SMART_CARD_EDGE_PROTOCOL *This, IN EFI_HANDLE SCardHandle, IN UINTN KeyId, IN EFI_GUID *HashAlgorithm, IN EFI_GUID *PaddingMethod, IN UINTN EncryptedSize, IN UINT8 *EncryptedData, IN OUT UINTN *PlaintextSize, OUT UINT8 *PlaintextData)
Definition SmartCardEdge.h:661
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
VOID * EFI_HANDLE
Definition UefiBaseType.h:37
#define VOID
Definition acefi.h:190
unsigned char BOOLEAN
Definition actypes.h:235
unsigned char UINT8
Definition actypes.h:236
Definition Base.h:281
Definition SmartCardEdge.h:724
EFI_SMART_CARD_EDGE_CONNECT Connect
Definition SmartCardEdge.h:726
EFI_SMART_CARD_EDGE_SIGN_DATA SignData
Definition SmartCardEdge.h:734
EFI_SMART_CARD_EDGE_BUILD_DH_AGREEMENT BuildDHAgreement
Definition SmartCardEdge.h:736
EFI_SMART_CARD_EDGE_GET_CSN GetCsn
Definition SmartCardEdge.h:728
EFI_SMART_CARD_EDGE_GET_CREDENTIAL GetCredential
Definition SmartCardEdge.h:733
EFI_SMART_CARD_EDGE_VERIFY_PIN VerifyPin
Definition SmartCardEdge.h:730
EFI_SMART_CARD_EDGE_DECRYPT_DATA DecryptData
Definition SmartCardEdge.h:735
EFI_SMART_CARD_EDGE_GET_PIN_REMAINING GetPinRemaining
Definition SmartCardEdge.h:731
EFI_SMART_CARD_EDGE_GET_CONTEXT GetContext
Definition SmartCardEdge.h:725
EFI_SMART_CARD_EDGE_DISCONNECT Disconnect
Definition SmartCardEdge.h:727
EFI_SMART_CARD_EDGE_GET_DATA GetData
Definition SmartCardEdge.h:732
EFI_SMART_CARD_EDGE_GET_READER_NAME GetReaderName
Definition SmartCardEdge.h:729