[FL-2121] U2F GUI (#942)
* U2F: new gui * U2F: user cert key encryption * FuriCore: move type casting to dangerous_defines * FuriCore: exclude dangerous things from furi.h Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -14,22 +14,32 @@ typedef struct {
|
||||
static void u2f_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
U2fModel* model = _model;
|
||||
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 0, 0, AlignLeft, AlignTop, "U2F Demo");
|
||||
canvas_draw_icon(canvas, 8, 14, &I_Drive_112x35);
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
|
||||
if(model->display_msg == U2fMsgRegister) {
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 0, 45, AlignLeft, AlignBottom, "Registration");
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str_aligned(canvas, 0, 63, AlignLeft, AlignBottom, "Press [OK] to confirm");
|
||||
if(model->display_msg == U2fMsgNotConnected) {
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Connect_me_62x31);
|
||||
canvas_draw_str_aligned(
|
||||
canvas, 128 / 2, 3, AlignCenter, AlignTop, "Connect me to computer");
|
||||
} else if(model->display_msg == U2fMsgIdle) {
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Connected_62x31);
|
||||
canvas_draw_str_aligned(canvas, 128 / 2, 3, AlignCenter, AlignTop, "Connected!");
|
||||
} else if(model->display_msg == U2fMsgRegister) {
|
||||
elements_button_center(canvas, "OK");
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Auth_62x31);
|
||||
canvas_draw_str_aligned(canvas, 128 / 2, 3, AlignCenter, AlignTop, "Press OK to register");
|
||||
} else if(model->display_msg == U2fMsgAuth) {
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 0, 45, AlignLeft, AlignBottom, "Authentication");
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str_aligned(canvas, 0, 63, AlignLeft, AlignBottom, "Press [OK] to confirm");
|
||||
elements_button_center(canvas, "OK");
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Auth_62x31);
|
||||
canvas_draw_str_aligned(
|
||||
canvas, 128 / 2, 3, AlignCenter, AlignTop, "Press OK to authenticate");
|
||||
} else if(model->display_msg == U2fMsgSuccess) {
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Connected_62x31);
|
||||
canvas_draw_str_aligned(
|
||||
canvas, 128 / 2, 3, AlignCenter, AlignTop, "Authentication successfull!");
|
||||
} else if(model->display_msg == U2fMsgError) {
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 64, 40, AlignCenter, AlignCenter, "U2F data missing");
|
||||
canvas_draw_icon(canvas, 22, 15, &I_Error_62x31);
|
||||
canvas_draw_str_aligned(canvas, 128 / 2, 3, AlignCenter, AlignTop, "Ceritficate missing");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -6,9 +6,11 @@ typedef struct U2fView U2fView;
|
||||
typedef void (*U2fOkCallback)(InputType type, void* context);
|
||||
|
||||
typedef enum {
|
||||
U2fMsgNone,
|
||||
U2fMsgNotConnected,
|
||||
U2fMsgIdle,
|
||||
U2fMsgRegister,
|
||||
U2fMsgAuth,
|
||||
U2fMsgSuccess,
|
||||
U2fMsgError,
|
||||
} U2fViewMsg;
|
||||
|
||||
|
Reference in New Issue
Block a user