From 7217f235a90f32b705c98e6da55d264fa0eecaa6 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 11 Oct 2022 11:18:58 +0000 Subject: [PATCH] _pakfire: keys: Export algorithm and key length Signed-off-by: Michael Tremer --- src/_pakfire/key.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/_pakfire/key.c b/src/_pakfire/key.c index 0807fd5cf..90fa9ee7c 100644 --- a/src/_pakfire/key.c +++ b/src/_pakfire/key.c @@ -138,6 +138,24 @@ static PyObject* Key_get_email(KeyObject* self) { return PyUnicode_FromString(email); } +static PyObject* Key_get_algo(KeyObject* self) { + const char* algo = pakfire_key_get_pubkey_algo(self->key); + + // Raise an error on no input + if (!algo) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + return PyUnicode_FromString(algo); +} + +static PyObject* Key_get_length(KeyObject* self) { + const size_t length = pakfire_key_get_pubkey_length(self->key); + + return PyLong_FromLong(length); +} + static PyObject* Key_export(KeyObject* self, PyObject* args) { PyObject* file = NULL; int secret = 0; @@ -246,6 +264,13 @@ static struct PyMethodDef Key_methods[] = { }; static struct PyGetSetDef Key_getsetters[] = { + { + "algo", + (getter)Key_get_algo, + NULL, + NULL, + NULL, + }, { "created_at", (getter)Key_get_created_at, @@ -274,6 +299,13 @@ static struct PyGetSetDef Key_getsetters[] = { NULL, NULL, }, + { + "length", + (getter)Key_get_length, + NULL, + NULL, + NULL, + }, { "name", (getter)Key_get_name, -- 2.39.5