Sign index-meta
This commit is contained in:
parent
b4e93a95bf
commit
381b7b7600
@ -93,8 +93,7 @@ repodata_flush(struct xbps_handle *xhp, const char *repodir,
|
|||||||
buf = xbps_dictionary_externalize(idx);
|
buf = xbps_dictionary_externalize(idx);
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
return false;
|
return false;
|
||||||
buflen = strlen(buf);
|
rv = xbps_archive_append_buf(ar, buf, strlen(buf),
|
||||||
rv = xbps_archive_append_buf(ar, buf, buflen,
|
|
||||||
XBPS_REPOIDX, 0644, "root", "root");
|
XBPS_REPOIDX, 0644, "root", "root");
|
||||||
free(buf);
|
free(buf);
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
@ -110,12 +109,32 @@ repodata_flush(struct xbps_handle *xhp, const char *repodir,
|
|||||||
} else {
|
} else {
|
||||||
buf = xbps_dictionary_externalize(meta);
|
buf = xbps_dictionary_externalize(meta);
|
||||||
}
|
}
|
||||||
rv = xbps_archive_append_buf(ar, buf, strlen(buf),
|
buflen = strlen(buf);
|
||||||
|
rv = xbps_archive_append_buf(ar, buf, buflen,
|
||||||
XBPS_REPOIDX_META, 0644, "root", "root");
|
XBPS_REPOIDX_META, 0644, "root", "root");
|
||||||
free(buf);
|
|
||||||
if (rv != 0)
|
if (rv != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (meta)
|
||||||
|
{
|
||||||
|
rv = sign_buffer(buf, buflen, privkey, &sig, &siglen);
|
||||||
|
free(buf);
|
||||||
|
if (rv != 0) {
|
||||||
|
free(sig);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
assert(sig);
|
||||||
|
rv = xbps_archive_append_buf(ar, sig, siglen,
|
||||||
|
XBPS_REPOIDXMETA_SIG, 0644, "root", "root");
|
||||||
|
if (rv != 0) {
|
||||||
|
free(sig);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
free(sig);
|
||||||
|
} else {
|
||||||
|
free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
/* Write data to tempfile and rename */
|
/* Write data to tempfile and rename */
|
||||||
if (archive_write_close(ar) != ARCHIVE_OK)
|
if (archive_write_close(ar) != ARCHIVE_OK)
|
||||||
return false;
|
return false;
|
||||||
|
@ -116,18 +116,19 @@
|
|||||||
*/
|
*/
|
||||||
#define XBPS_REPOIDX "index.plist"
|
#define XBPS_REPOIDX "index.plist"
|
||||||
|
|
||||||
/**
|
|
||||||
* @def XBPS_REPOIDX_SIG
|
|
||||||
* Filename for the signature of repository index property list.
|
|
||||||
*/
|
|
||||||
#define XBPS_REPOIDX_SIG "index.plist.sig"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @def XBPS_REPOIDX_META
|
* @def XBPS_REPOIDX_META
|
||||||
* Filename for the repository index metadata property list.
|
* Filename for the repository index metadata property list.
|
||||||
*/
|
*/
|
||||||
#define XBPS_REPOIDX_META "index-meta.plist"
|
#define XBPS_REPOIDX_META "index-meta.plist"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def XBPS_REPOIDXMETA_SIG
|
||||||
|
* Filename for the signature of repository index metadata
|
||||||
|
* property list.
|
||||||
|
*/
|
||||||
|
#define XBPS_REPOIDXMETA_SIG "index-meta.plist.sig"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @def XBPS_FLAG_VERBOSE
|
* @def XBPS_FLAG_VERBOSE
|
||||||
* Verbose flag that can be used in the function callbacks to alter
|
* Verbose flag that can be used in the function callbacks to alter
|
||||||
@ -1360,7 +1361,7 @@ struct xbps_repo {
|
|||||||
xbps_dictionary_t idxmeta;
|
xbps_dictionary_t idxmeta;
|
||||||
/**
|
/**
|
||||||
* @var uri
|
* @var uri
|
||||||
*
|
*
|
||||||
* URI string associated with repository.
|
* URI string associated with repository.
|
||||||
*/
|
*/
|
||||||
const char *uri;
|
const char *uri;
|
||||||
|
@ -75,9 +75,9 @@ repo_verify_index(struct xbps_repo *repo, unsigned char *digest) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(archive_entry_pathname(entry), XBPS_REPOIDX_SIG) != 0) {
|
if (strcmp(archive_entry_pathname(entry), XBPS_REPOIDXMETA_SIG) != 0) {
|
||||||
xbps_dbg_printf(repo->xhp,
|
xbps_dbg_printf(repo->xhp,
|
||||||
"%s: no signature of %s\n", repo->uri, XBPS_REPOIDX);
|
"%s: no signature of %s\n", repo->uri, XBPS_REPOIDX_META);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user