summaryrefslogtreecommitdiff
path: root/Include/Protocol/UserCredential.h
blob: 2a324cff752ff6977521d28e4a5a9e83c6329000 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2011, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093        **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************

//**********************************************************************
// $Header: /Alaska/BIN/Core/Include/Protocol/UserCredential.h 1     5/13/11 4:37p Artems $
//
// $Revision: 1 $
//
// $Date: 5/13/11 4:37p $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Include/Protocol/UserCredential.h $
// 
// 1     5/13/11 4:37p Artems
// 
// 
//**********************************************************************
//<AMI_FHDR_START>
//
// Name:	<UserCredential.h>
//
// Description:	User credential protocol header file
//
//<AMI_FHDR_END>
//**********************************************************************
#ifndef __USER_CREDENTIAL__H__
#define __USER_CREDENTIAL__H__
#ifdef __cplusplus
extern "C" {
#endif

#include <UefiHii.h>
#include <Protocol/UserManager.h>

#define EFI_USER_CREDENTIAL_PROTOCOL_GUID \
    { 0x71ee5e94, 0x65b9, 0x45d5, 0x82, 0x1a, 0x3a, 0x4d, 0x86, 0xcf, 0xe6, 0xbe }

#define EFI_USER_CREDENTIAL_CLASS_UNKNOWN \
    { 0x5cf32e68, 0x7660, 0x449b, 0x80, 0xe6, 0x7e, 0xa3, 0x6e, 0x03, 0xf6, 0xa8 }

#define EFI_USER_CREDENTIAL_CLASS_PASSWORD \
    { 0xf8e5058c, 0xccb6, 0x4714, 0xb2, 0x20, 0x3f, 0x7e, 0x3a, 0x64, 0x0b, 0xd1 }

#define EFI_USER_CREDENTIAL_CLASS_SMART_CARD \
    { 0x5f03ba33, 0x8c6b, 0x4c24, 0xaa, 0x2e, 0x14, 0xa2, 0x65, 0x7b, 0xd4, 0x54 }

#define EFI_USER_CREDENTIAL_CLASS_FINGERPRINT \
    { 0x32cba21f, 0xf308, 0x4cbc, 0x9a, 0xb5, 0xf5, 0xa3, 0x69, 0x9f, 0x04, 0x4a }

#define EFI_USER_CREDENTIAL_CLASS_HANDPRINT \
    { 0x5917ef16, 0xf723, 0x4bb9, 0xa6, 0x4b, 0xd8, 0xc5, 0x32, 0xf4, 0xd8, 0xb5 }

#define EFI_USER_CREDENTIAL_CLASS_SECURE_CARD \
    { 0x8a6b4a83, 0x42fe, 0x45d2, 0xa2, 0xef, 0x46, 0xf0, 0x6c, 0x7d, 0x98, 0x52 }


#define EFI_CREDENTIAL_CAPABILITIES_ENROLL  0x0000000000000001

#define EFI_CREDENTIAL_LOGON_FLAG_AUTO      0x00000001
#define EFI_CREDENTIAL_LOGON_FLAG_DEFAULT   0x00000002

GUID_VARIABLE_DECLARATION(gEfiUserCredentialProtocolGuid, EFI_USER_CREDENTIAL_PROTOCOL_GUID);
GUID_VARIABLE_DECLARATION(gEfiUserCredentialClassPasswordGuid, EFI_USER_CREDENTIAL_CLASS_PASSWORD);

typedef struct _EFI_USER_CREDENTIAL_PROTOCOL EFI_USER_CREDENTIAL_PROTOCOL;

typedef UINT64 EFI_CREDENTIAL_CAPABILITIES;
typedef UINT32 EFI_CREDENTIAL_LOGON_FLAGS;

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_ENROLL)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    IN       EFI_USER_PROFILE_HANDLE      User
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_FORM)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    OUT      EFI_HII_HANDLE               *Hii,
    OUT      EFI_GUID                     *FormSetId,
    OUT      EFI_FORM_ID                  *FormId
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_TILE)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    IN OUT   UINTN                        *Width,
    IN OUT   UINTN                        *Height,
    OUT      EFI_HII_HANDLE               *Hii,
    OUT      EFI_IMAGE_ID                 *Image
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_TITLE)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    OUT      EFI_HII_HANDLE               *Hii,
    OUT      EFI_STRING_ID                *String
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_USER)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    IN       EFI_USER_PROFILE_HANDLE      User,
    OUT      EFI_USER_INFO_IDENTIFIER     *Identifier
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_SELECT)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    OUT      EFI_CREDENTIAL_LOGON_FLAGS   *AutoLogon
);

typedef
EFI_STATUS (EFIAPI *EFI_CREDENTIAL_DESELECT)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_DEFAULT)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    OUT      EFI_CREDENTIAL_LOGON_FLAGS   *AutoLogon
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_GET_INFO)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    IN       EFI_USER_INFO_HANDLE         UserInfo,
    OUT      EFI_USER_INFO                *Info,
    IN OUT   UINTN                        *InfoSize
);

typedef EFI_STATUS
(EFIAPI *EFI_CREDENTIAL_GET_NEXT_INFO)(
    IN CONST EFI_USER_CREDENTIAL_PROTOCOL *This,
    IN OUT   EFI_USER_INFO_HANDLE         *UserInfo
);

struct _EFI_USER_CREDENTIAL_PROTOCOL {
    EFI_GUID                     Identifier;
    EFI_GUID                     Type;
    EFI_CREDENTIAL_ENROLL        Enroll;
    EFI_CREDENTIAL_FORM          Form;
    EFI_CREDENTIAL_TILE          Tile;
    EFI_CREDENTIAL_TITLE         Title;
    EFI_CREDENTIAL_USER          User;
    EFI_CREDENTIAL_SELECT        Select;
    EFI_CREDENTIAL_DESELECT      Deselect;
    EFI_CREDENTIAL_DEFAULT       Default;
    EFI_CREDENTIAL_GET_INFO      GetInfo;
    EFI_CREDENTIAL_GET_NEXT_INFO GetNextInfo;
    EFI_CREDENTIAL_CAPABILITIES  Capabilities;
};

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2011, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093        **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************