}
static PyObject* Key_repr(KeyObject* self) {
- const pakfire_key_id id = pakfire_key_get_id(self->key);
+ const pakfire_key_id* id = pakfire_key_get_id(self->key);
- return PyUnicode_FromFormat("<_pakfire.Key (%lu)>", id);
+ return PyUnicode_FromFormat("<_pakfire.Key (%lu)>", *id);
}
static PyObject* Key_str(KeyObject* self) {
}
static PyObject* Key_get_id(KeyObject* self) {
- const pakfire_key_id id = pakfire_key_get_id(self->key);
+ const pakfire_key_id* id = pakfire_key_get_id(self->key);
- return PyLong_FromUnsignedLong(id);
+ return PyLong_FromUnsignedLong(*id);
}
static PyObject* Key_get_algorithm(KeyObject* self) {
PAKFIRE_KEY_EXPORT_MODE_PRIVATE,
} pakfire_key_export_mode_t;
-typedef uint64_t pakfire_key_id;
+typedef unsigned char pakfire_key_id[8];
struct pakfire_key* pakfire_key_ref(struct pakfire_key* key);
void pakfire_key_unref(struct pakfire_key* key);
// Access key properties
-pakfire_key_id pakfire_key_get_id(struct pakfire_key* key);
+pakfire_key_id* pakfire_key_get_id(struct pakfire_key* key);
const char* pakfire_key_get_algo(struct pakfire_key* key);
int pakfire_key_generate(struct pakfire_key** key, struct pakfire* pakfire,
}
// Store the key ID
- k->id = id;
+ memcpy(k->id, id, sizeof(k->id));
// Keep a reference to this key
EVP_PKEY_up_ref(pkey);
pakfire_key_free(key);
}
-PAKFIRE_EXPORT pakfire_key_id pakfire_key_get_id(struct pakfire_key* key) {
+PAKFIRE_EXPORT pakfire_key_id* pakfire_key_get_id(struct pakfire_key* key) {
return key->id;
}
}
// Copy the key ID
- buffer->id = key->id;
+ memcpy(buffer->id, key->id, sizeof(buffer->id));
// Write the public key
r = pakfire_key_get_public_key(key, buffer->keys.public, sizeof(buffer->keys.public));
}
// Copy the key ID
- buffer->id = key->id;
+ memcpy(buffer->id, key->id, sizeof(buffer->id));
// Write the public key
r = pakfire_key_get_public_key(key, buffer->pubkey, sizeof(buffer->pubkey));
signature->sig_algo[1] = 'd';
// Set the key ID
- signature->key_id = key->id;
+ memcpy(signature->key_id, key->id, sizeof(signature->key_id));
// Create a message digest context
mdctx = EVP_MD_CTX_new();