egis_etu905: Use fpi writer to build the commit data

This commit is contained in:
Marco Trevisan (Treviño)
2026-07-01 17:59:34 +02:00
parent a042240b67
commit 141a63b0a4
2 changed files with 15 additions and 25 deletions
+15 -15
View File
@@ -1073,7 +1073,6 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
FpDevice *device)
{
g_auto(FpiByteWriter) writer = {0};
EgismocSidData sid_data = {0};
EnrollPrint *enroll_print = fpi_ssm_get_data (ssm);
g_autofree guchar *payload = NULL;
gsize payload_length = 0;
@@ -1121,20 +1120,21 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
user_id = fpi_print_generate_user_id (enroll_print->print);
fp_dbg ("New fingerprint ID: %s", user_id);
sid_data.reserve_para_1 = GUINT16_TO_LE (EGIS_ETU905_PARA_1_VALUE);
sid_data.reserve_para_2 = GUINT16_TO_LE (EGIS_ETU905_PARA_2_VALUE);
sid_data.reserve_para_3 = GUINT16_TO_LE (EGIS_ETU905_PARA_3_VALUE);
memcpy (sid_data.reserve_para_4, user_id, MIN (EGIS_ETU905_FINGERPRINT_DATA_SIZE, strlen (user_id)));
egis_etu905_set_print_data (enroll_print->print, (const gchar *) &sid_data.reserve_para_4, user_id);
fpi_byte_writer_init (&writer);
if (!fpi_byte_writer_put_data (&writer, cmd_new_print_prefix_type2,
cmd_new_print_prefix_type2_len))
{
fpi_ssm_mark_failed (ssm, fpi_device_error_new (FP_DEVICE_ERROR_PROTO));
break;
}
if (!fpi_byte_writer_put_data (&writer, (guint8 *) &sid_data,
sizeof (EgismocSidData)))
device_print_id = g_malloc0 (EGIS_ETU905_FINGERPRINT_DATA_SIZE);
memcpy (device_print_id, user_id,
MIN (EGIS_ETU905_FINGERPRINT_DATA_SIZE, strlen (user_id)));
egis_etu905_set_print_data (enroll_print->print, device_print_id, user_id);
fpi_byte_writer_init_with_size (&writer,
cmd_new_print_prefix_type2_len +
1 + 2 + 2 + EGIS_ETU905_PARA_4_SIZE,
TRUE);
if (!fpi_byte_writer_put_data_static (&writer, cmd_new_print_prefix_type2) ||
!fpi_byte_writer_put_uint8 (&writer, EGIS_ETU905_PARA_1_VALUE) ||
!fpi_byte_writer_put_uint16_le (&writer, EGIS_ETU905_PARA_2_VALUE) ||
!fpi_byte_writer_put_uint16_le (&writer, EGIS_ETU905_PARA_3_VALUE) ||
!fpi_byte_writer_put_data (&writer, (guint8 *) device_print_id,
EGIS_ETU905_FINGERPRINT_DATA_SIZE))
{
fpi_ssm_mark_failed (ssm, fpi_device_error_new (FP_DEVICE_ERROR_PROTO));
break;
-10
View File
@@ -53,16 +53,6 @@ G_DECLARE_FINAL_TYPE (FpiDeviceEgisEtu905, fpi_device_egis_etu905, FPI, DEVICE_E
#define EGIS_ETU905_PARA_2_VALUE 0
#define EGIS_ETU905_PARA_3_VALUE 32
#pragma pack(push, 1)
typedef struct
{
guchar reserve_para_1;
gushort reserve_para_2;
gushort reserve_para_3;
guchar reserve_para_4[EGIS_ETU905_PARA_4_SIZE];
} EgismocSidData;
#pragma pack(pop)
/* standard prefixes for all read/writes */
static guchar egis_etu905_write_prefix[] = {'E', 'G', 'I', 'S', 0x00, 0x00, 0x00, 0x01};