check reviewer --reviewer=emilia
authorRob Percival <robpercival@google.com>
Thu, 10 Mar 2016 18:21:40 +0000 (18:21 +0000)
committerRich Salz <rsalz@openssl.org>
Thu, 10 Mar 2016 19:53:04 +0000 (14:53 -0500)
Pass entire CTLOG_STORE to SCT_print, rather than just the SCT's CTLOG

SCT_print now looks up the correct CT log for you.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/ct/ct_prn.c
include/openssl/ct.h

index 239ffc8..0d9d019 100644 (file)
@@ -96,8 +96,16 @@ static void timestamp_print(uint64_t timestamp, BIO *out)
     ASN1_GENERALIZEDTIME_free(gen);
 }
 
-void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG *log)
+void SCT_print(const SCT *sct, BIO *out, int indent,
+               const CTLOG_STORE *log_store)
 {
+    const CTLOG *log = NULL;
+
+    if (log_store != NULL) {
+        log = CTLOG_STORE_get0_log_by_id(log_store, sct->log_id,
+                                         sct->log_id_len);
+    }
+
     BIO_printf(out, "%*sSigned Certificate Timestamp:", indent, "");
     BIO_printf(out, "\n%*sVersion   : ", indent + 4, "");
 
@@ -139,14 +147,8 @@ void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent,
 
     for (i = 0; i < sk_SCT_num(sct_list); ++i) {
         SCT *sct = sk_SCT_value(sct_list, i);
-        const CTLOG *log = NULL;
-
-        if (log_store != NULL) {
-            log = CTLOG_STORE_get0_log_by_id(log_store, sct->log_id,
-                                             sct->log_id_len);
-        }
 
-        SCT_print(sct, out, indent, log);
+        SCT_print(sct, out, indent, log_store);
         if (i < sk_SCT_num(sct_list) - 1)
             BIO_printf(out, "%s", separator);
     }
index 553f82f..5e56fb7 100644 (file)
@@ -302,11 +302,10 @@ __owur int SCT_set_source(SCT *sct, sct_source_t source);
 /*
  * Pretty-prints an |sct| to |out|.
  * It will be indented by the number of spaces specified by |indent|.
- * If |log| is not NULL:
- * - it should be the CT log that the SCT came from.
- * - its name will be printed.
+ * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came
+ * from, so that the log name can be printed.
  */
-void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG *log);
+void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs);
 
 /*
  * Pretty-prints an |sct_list| to |out|.