Manpages - libalpm_sig.3

Table of Contents

NAME

libalpm_sig - Signature checking

  • Functions to check signatures.

SYNOPSIS


Data Structures

struct alpm_pgpkey_t
A PGP key.

struct alpm_sigresult_t
Signature result.

struct alpm_siglist_t
Signature list.

Enumerations

enum alpm_siglevel_t { ALPM_SIG_PACKAGE = (1 << 0), ALPM_SIG_PACKAGE_OPTIONAL = (1 << 1), ALPM_SIG_PACKAGE_MARGINAL_OK = (1 << 2), ALPM_SIG_PACKAGE_UNKNOWN_OK = (1 << 3), ALPM_SIG_DATABASE = (1 << 10), ALPM_SIG_DATABASE_OPTIONAL = (1 << 11), ALPM_SIG_DATABASE_MARGINAL_OK = (1 << 12), ALPM_SIG_DATABASE_UNKNOWN_OK = (1 << 13), ALPM_SIG_USE_DEFAULT = (1 << 30) }
PGP signature verification options.

enum alpm_sigstatus_t { ALPM_SIGSTATUS_VALID, ALPM_SIGSTATUS_KEY_EXPIRED, ALPM_SIGSTATUS_SIG_EXPIRED, ALPM_SIGSTATUS_KEY_UNKNOWN, ALPM_SIGSTATUS_KEY_DISABLED, ALPM_SIGSTATUS_INVALID }
PGP signature verification status return codes.

enum alpm_sigvalidity_t { ALPM_SIGVALIDITY_FULL, ALPM_SIGVALIDITY_MARGINAL, ALPM_SIGVALIDITY_NEVER, ALPM_SIGVALIDITY_UNKNOWN }
The trust level of a PGP key.

Functions

int alpm_pkg_check_pgp_signature (alpm_pkg_t pkg, *alpm_siglist_t *siglist)
Check the PGP signature for the given package file.

int alpm_db_check_pgp_signature (alpm_db_t db, *alpm_siglist_t *siglist)
Check the PGP signature for the given database.

int alpm_siglist_cleanup (alpm_siglist_t *siglist)
Clean up and free a signature result list.

int alpm_decode_signature (const char *base64_data, unsigned char **data, size_t *data_len)
Decode a loaded signature in base64 form.

int alpm_extract_keyid (alpm_handle_t handle, const char *identifier, const unsigned char *sig, const size_t len, *alpm_list_t **keys)
Extract the Issuer Key ID from a signature.

Detailed Description

Functions to check signatures.

Data Structure Documentation

struct alpm_pgpkey_t

A PGP key.

Data Fields:

alpm_time_t created When the key was created.

void * data The actual key data.

char * email Email of the key’s owner.

alpm_time_t expires When the key expires.

char * fingerprint The key’s fingerprint.

unsigned int length The length of the key.

char * name Name of the key’s owner.

char pubkey_algo A character representing the encryption algorithm used by the public key.
? = unknown R = RSA D = DSA E = EDDSA

unsigned int revoked has the key been revoked

char * uid UID of the key.

struct alpm_sigresult_t

Signature result.

Contains the key, status, and validity of a given signature.

Data Fields:

alpm_pgpkey_t key The key of the signature.

alpm_sigstatus_t status The status of the signature.

alpm_sigvalidity_t validity The validity of the signature.

struct alpm_siglist_t

Signature list.

Contains the number of signatures found and a pointer to an array of results. The array is of size count.

Data Fields:

size_t count The amount of results in the array.

alpm_sigresult_t * results An array of sigresults.

Enumeration Type Documentation

enum alpm_siglevel_t

PGP signature verification options.

Enumerator

/ALPM_SIG_PACKAGE /
Packages require a signature.
/ALPM_SIG_PACKAGE_OPTIONAL /
Packages do not require a signature, but check packages that do have signatures.
/ALPM_SIG_PACKAGE_UNKNOWN_OK /
Allow packages with signatures that are unknown trust.
/ALPM_SIG_DATABASE /
Databases require a signature.
/ALPM_SIG_DATABASE_OPTIONAL /
Databases do not require a signature, but check databases that do have signatures.
/ALPM_SIG_DATABASE_MARGINAL_OK /
Allow databases with signatures that are marginal trust.
/ALPM_SIG_DATABASE_UNKNOWN_OK /
Allow databases with signatures that are unknown trust.
/ALPM_SIG_USE_DEFAULT /
The Default siglevel.

enum alpm_sigstatus_t

PGP signature verification status return codes.

Enumerator

/ALPM_SIGSTATUS_VALID /
Signature is valid.
/ALPM_SIGSTATUS_KEY_EXPIRED /
The key has expired.
/ALPM_SIGSTATUS_SIG_EXPIRED /
The signature has expired.
/ALPM_SIGSTATUS_KEY_UNKNOWN /
The key is not in the keyring.
/ALPM_SIGSTATUS_KEY_DISABLED /
The key has been disabled.
/ALPM_SIGSTATUS_INVALID /
The signature is invalid.

enum alpm_sigvalidity_t

The trust level of a PGP key.

Enumerator

/ALPM_SIGVALIDITY_FULL /
The signature is fully trusted.
/ALPM_SIGVALIDITY_MARGINAL /
The signature is marginally trusted.
/ALPM_SIGVALIDITY_NEVER /
The signature is never trusted.
/ALPM_SIGVALIDITY_UNKNOWN /
The signature has unknown trust.

Function Documentation

int alpm_db_check_pgp_signature (*alpm_db_t*/ * db,

alpm_siglist_t * siglist)/ Check the PGP signature for the given database.

Parameters

/db the database to check /
/siglist a pointer to storage for signature results /

Returns

a int value : 0 (valid), 1 (invalid), -1 (an error occurred)

int alpm_decode_signature (const char * base64_data, unsigned char **

data, size_t * data_len) Decode a loaded signature in base64 form.

Parameters

/base64_data the signature to attempt to decode /
/data the decoded data; must be freed by the caller /
/data_len the length of the returned data /

Returns

0 on success, -1 on failure to properly decode

int alpm_extract_keyid (*alpm_handle_t*/ * handle, const char *

identifier, const unsigned char * sig, const size_t len, alpm_list_t

keys)/

Extract the Issuer Key ID from a signature.

Parameters

/handle the context handle /
/identifier the identifier of the key. This may be the name of the package or the path to the package. /
/sig PGP signature /
/len length of signature /
/keys a pointer to storage for key IDs /

Returns

0 on success, -1 on error

int alpm_pkg_check_pgp_signature (*alpm_pkg_t*/ * pkg,

alpm_siglist_t * siglist)/ Check the PGP signature for the given package file.

Parameters

/pkg the package to check /
/siglist a pointer to storage for signature results /

Returns

a int value : 0 (valid), 1 (invalid), -1 (an error occurred)

int alpm_siglist_cleanup (*alpm_siglist_t*/ * siglist)/

Clean up and free a signature result list. Note that this does not free the siglist object itself in case that was allocated on the stack; this is the responsibility of the caller.

Parameters

/siglist a pointer to storage for signature results /

Returns

0 on success, -1 on error

Author

Generated automatically by Doxygen for libalpm from the source code.

Author: dt

Created: 2022-02-20 Sun 17:15