libalpm
Arch Linux Package Manager Library
|
Functions to check signatures More...
Data Structures | |
struct | alpm_pgpkey_t |
A PGP key. More... | |
struct | alpm_sigresult_t |
Signature result. More... | |
struct | alpm_siglist_t |
Signature list. More... | |
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. More... | |
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. More... | |
enum | alpm_sigvalidity_t { ALPM_SIGVALIDITY_FULL , ALPM_SIGVALIDITY_MARGINAL , ALPM_SIGVALIDITY_NEVER , ALPM_SIGVALIDITY_UNKNOWN } |
The trust level of a PGP key. More... | |
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. | |
Functions to check signatures
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 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. |
enum alpm_siglevel_t |
PGP signature verification options.
enum alpm_sigstatus_t |
PGP signature verification status return codes.
enum alpm_sigvalidity_t |
int alpm_db_check_pgp_signature | ( | alpm_db_t * | db, |
alpm_siglist_t * | siglist ) |
Check the PGP signature for the given database.
db | the database to check |
siglist | a pointer to storage for signature results |
References ALPM_ERR_OK, ALPM_ERR_WRONG_ARGS, ASSERT, and RET_ERR.
int alpm_decode_signature | ( | const char * | base64_data, |
unsigned char ** | data, | ||
size_t * | data_len ) |
Decode a loaded signature in base64 form.
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 |
References base64_decode(), error, and MALLOC.
Referenced by alpm_pkg_get_sig().
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.
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 |
References _, ALPM_LOG_ERROR, length_check(), and parse_subpacket().
Referenced by alpm_pkg_load(), and check_keyring().
int alpm_pkg_check_pgp_signature | ( | alpm_pkg_t * | pkg, |
alpm_siglist_t * | siglist ) |
Check the PGP signature for the given package file.
pkg | the package to check |
siglist | a pointer to storage for signature results |
References ALPM_ERR_OK, ALPM_ERR_WRONG_ARGS, ASSERT, and RET_ERR.
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.
siglist | a pointer to storage for signature results |
References ASSERT, alpm_siglist_t::count, alpm_pgpkey_t::data, alpm_pgpkey_t::fingerprint, alpm_sigresult_t::key, and alpm_siglist_t::results.
Referenced by check_validity(), and sync_db_validate().