mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-28 16:57:18 +00:00

This can be used like this: fwupdtool firmware-sign firmware.cab rhughes_signed.pem rhughes.key Test signing certificates can be generated using the example script here: https://github.com/hughsie/libjcat/blob/master/contrib/build-certs.py although these certificates should not be used for enterprise use.
80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
/*
|
|
* Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1+
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <glib-object.h>
|
|
#include <xmlb.h>
|
|
#include <jcat.h>
|
|
|
|
#define FU_TYPE_CABINET (fu_cabinet_get_type ())
|
|
|
|
G_DECLARE_FINAL_TYPE (FuCabinet, fu_cabinet, FU, CABINET, GObject)
|
|
|
|
/**
|
|
* FuCabinetParseFlags:
|
|
* @FU_CABINET_PARSE_FLAG_NONE: No flags set
|
|
*
|
|
* The flags to use when loading the cabinet.
|
|
**/
|
|
typedef enum {
|
|
FU_CABINET_PARSE_FLAG_NONE = 0,
|
|
/*< private >*/
|
|
FU_CABINET_PARSE_FLAG_LAST
|
|
} FuCabinetParseFlags;
|
|
|
|
/**
|
|
* FuCabinetExportFlags:
|
|
* @FU_CABINET_EXPORT_FLAG_NONE: No flags set
|
|
*
|
|
* The flags to use when exporting the archive.
|
|
**/
|
|
typedef enum {
|
|
FU_CABINET_EXPORT_FLAG_NONE = 0,
|
|
/*< private >*/
|
|
FU_CABINET_EXPORT_FLAG_LAST
|
|
} FuCabinetExportFlags;
|
|
|
|
/**
|
|
* FuCabinetSignFlags:
|
|
* @FU_CABINET_SIGN_FLAG_NONE: No flags set
|
|
*
|
|
* The flags to use when signing the archive.
|
|
**/
|
|
typedef enum {
|
|
FU_CABINET_SIGN_FLAG_NONE = 0,
|
|
/*< private >*/
|
|
FU_CABINET_SIGN_FLAG_LAST
|
|
} FuCabinetSignFlags;
|
|
|
|
FuCabinet *fu_cabinet_new (void);
|
|
void fu_cabinet_set_size_max (FuCabinet *self,
|
|
guint64 size_max);
|
|
void fu_cabinet_set_jcat_context (FuCabinet *self,
|
|
JcatContext *jcat_context);
|
|
gboolean fu_cabinet_parse (FuCabinet *self,
|
|
GBytes *data,
|
|
FuCabinetParseFlags flags,
|
|
GError **error)
|
|
G_GNUC_WARN_UNUSED_RESULT;
|
|
gboolean fu_cabinet_sign (FuCabinet *self,
|
|
GBytes *cert,
|
|
GBytes *privkey,
|
|
FuCabinetSignFlags flags,
|
|
GError **error)
|
|
G_GNUC_WARN_UNUSED_RESULT;
|
|
void fu_cabinet_add_file (FuCabinet *self,
|
|
const gchar *basename,
|
|
GBytes *data);
|
|
GBytes *fu_cabinet_get_file (FuCabinet *self,
|
|
const gchar *basename,
|
|
GError **error);
|
|
GBytes *fu_cabinet_export (FuCabinet *self,
|
|
FuCabinetExportFlags flags,
|
|
GError **error)
|
|
G_GNUC_WARN_UNUSED_RESULT;
|
|
XbSilo *fu_cabinet_get_silo (FuCabinet *self);
|