aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2008-06-23 17:43:42 +0000
committerRob Austein <sra@hactrn.net>2008-06-23 17:43:42 +0000
commit913823f9aa6dd817a60e0bbed3e47cf084a33a56 (patch)
tree941b3632ab4cf6d6e9823ade039913e45b0a9da7
parent2670d1e5d43a646d15616fb137c0a96569e8770a (diff)
Checkpoint
svn path=/rcynic/rcynic.c; revision=1936
-rw-r--r--rcynic/rcynic.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/rcynic/rcynic.c b/rcynic/rcynic.c
index 0a480461..33c376cf 100644
--- a/rcynic/rcynic.c
+++ b/rcynic/rcynic.c
@@ -1893,7 +1893,7 @@ static X509 *check_cert(rcynic_ctx_t *rc,
char path[FILENAME_MAX];
X509 *x;
- assert(certs);
+ assert(rc && uri && certs && issuer && subj && prefix);
/*
* If target file already exists and we're not here to recheck with
@@ -2019,6 +2019,15 @@ static void walk_cert(rcynic_ctx_t *rc,
* memset() it or call parse_cert() where we don't now, as
* needed.
*
+ * Hmm, no, we can't count on the SIA pointers, and the EE certs
+ * might or might not already be bundled into the ROAs. The ROA
+ * spec says we're supposed to figure this out by looking at the
+ * SignerInfos field in the CMS. By happy coincidence, the
+ * SignerInfos is required by profile to use SHA-256, ie, the
+ * same hash we already have for everything in the manifest.
+ * So, in theory, we can just look up the right EE cert in the
+ * manifest if it's not already in the CMS.
+ *
* Separate problem of handling objects that are neither certs
* nor ROAs. At the moment the only such is the CRL that covers
* this collection of certs, which we should be able to check