From 3ea9cc90fe452166169c158e1ad7b1f794051cb1 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Tue, 3 Nov 2020 00:13:55 +0100 Subject: [PATCH] saner public key param --- libfprint/fpi-sdcp-device.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/libfprint/fpi-sdcp-device.c b/libfprint/fpi-sdcp-device.c index d3c03f6..43071ef 100644 --- a/libfprint/fpi-sdcp-device.c +++ b/libfprint/fpi-sdcp-device.c @@ -628,12 +628,11 @@ fpi_sdcp_validate_cert (FpSdcpDevice *self, res->pkcs11Slot = 0; res->pkcs11ID = CK_INVALID_HANDLE; - res->keyType = priv->host_key_public->keyType; - res->u.ec.DEREncodedParams = priv->host_key_public->u.ec.DEREncodedParams; - res->u.ec.size = priv->host_key_public->u.ec.size; + res->keyType = ecKey; + res->u.ec.DEREncodedParams = SDCPECParamsDER; res->u.ec.publicValue.len = 65; - res->u.ec.publicValue.type = priv->host_key_public->u.ec.publicValue.type; - res->u.ec.publicValue.data = (guint8 *) cert_m_data; + res->u.ec.publicValue.data = (guint8 *) PORT_ArenaAlloc (res->arena, 65); + memcpy (res->u.ec.publicValue.data, cert_m_data, 65); goto out; } @@ -951,11 +950,9 @@ fpi_sdcp_device_connect_complete (FpSdcpDevice *self, goto out; } - device_key_public.keyType = priv->host_key_public->keyType; - device_key_public.u.ec.DEREncodedParams = priv->host_key_public->u.ec.DEREncodedParams; - device_key_public.u.ec.size = priv->host_key_public->u.ec.size; - device_key_public.u.ec.publicValue.len = 65; - device_key_public.u.ec.publicValue.type = priv->host_key_public->u.ec.publicValue.type; + device_key_public.keyType = ecKey; + device_key_public.u.ec.DEREncodedParams = SDCPECParamsDER; + device_key_public.u.ec.publicValue.len = g_bytes_get_size (claim->pk_d); device_key_public.u.ec.publicValue.data = (guint8 *) g_bytes_get_data (claim->pk_d, NULL); /* Verify(pk_d, H(C001||h_f||pk_f), s_d) */