| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ts/ts_asn1.c |
| Source code | Switch to Preprocessed file |
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | /* | - | ||||||||||||
| 2 | * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. | - | ||||||||||||
| 3 | * | - | ||||||||||||
| 4 | * Licensed under the OpenSSL license (the "License"). You may not use | - | ||||||||||||
| 5 | * this file except in compliance with the License. You can obtain a copy | - | ||||||||||||
| 6 | * in the file LICENSE in the source distribution or at | - | ||||||||||||
| 7 | * https://www.openssl.org/source/license.html | - | ||||||||||||
| 8 | */ | - | ||||||||||||
| 9 | - | |||||||||||||
| 10 | #include <openssl/ts.h> | - | ||||||||||||
| 11 | #include <openssl/err.h> | - | ||||||||||||
| 12 | #include <openssl/asn1t.h> | - | ||||||||||||
| 13 | #include "ts_lcl.h" | - | ||||||||||||
| 14 | - | |||||||||||||
| 15 | ASN1_SEQUENCE(TS_MSG_IMPRINT) = { | - | ||||||||||||
| 16 | ASN1_SIMPLE(TS_MSG_IMPRINT, hash_algo, X509_ALGOR), | - | ||||||||||||
| 17 | ASN1_SIMPLE(TS_MSG_IMPRINT, hashed_msg, ASN1_OCTET_STRING) | - | ||||||||||||
| 18 | } static_ASN1_SEQUENCE_END(TS_MSG_IMPRINT) | - | ||||||||||||
| 19 | - | |||||||||||||
| 20 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_MSG_IMPRINT) executed 2 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_MSG_IMPRINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_MSG_IMPRINT_it)));Executed by:
executed 2 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_MSG_IMPRINT_it)));Executed by:
never executed: return (TS_MSG_IMPRINT *)ASN1_item_new((&(TS_MSG_IMPRINT_it))); | 0-3323 | ||||||||||||
| 21 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT) never executed: return ASN1_item_dup((&(TS_MSG_IMPRINT_it)), x); | 0 | ||||||||||||
| 22 | TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT **a) | - | ||||||||||||
| 23 | { | - | ||||||||||||
| 24 | return ASN1_d2i_bio_of(TS_MSG_IMPRINT, TS_MSG_IMPRINT_new, never executed: return ((TS_MSG_IMPRINT*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_MSG_IMPRINT_new : ((TS_MSG_IMPRINT *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_MSG_IMPRINT : ((TS_MSG_IMPRINT *(*)(TS_MSG_IMPRINT **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_MSG_IMPRINT**)0)))) ; | 0 | ||||||||||||
| 25 | d2i_TS_MSG_IMPRINT, bp, a); never executed: return ((TS_MSG_IMPRINT*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_MSG_IMPRINT_new : ((TS_MSG_IMPRINT *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_MSG_IMPRINT : ((TS_MSG_IMPRINT *(*)(TS_MSG_IMPRINT **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_MSG_IMPRINT**)0)))) ; | 0 | ||||||||||||
| 26 | } | - | ||||||||||||
| 27 | - | |||||||||||||
| 28 | int i2d_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT *a) | - | ||||||||||||
| 29 | { | - | ||||||||||||
| 30 | return ASN1_i2d_bio_of_const(TS_MSG_IMPRINT, i2d_TS_MSG_IMPRINT, bp, a); never executed: return (ASN1_i2d_bio(((i2d_of_void*) (1 ? i2d_TS_MSG_IMPRINT : ((int (*)(const TS_MSG_IMPRINT *,unsigned char **))0))), bp, ((void*) (1 ? a : (const TS_MSG_IMPRINT*)0)))); | 0 | ||||||||||||
| 31 | } | - | ||||||||||||
| 32 | #ifndef OPENSSL_NO_STDIO | - | ||||||||||||
| 33 | TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a) | - | ||||||||||||
| 34 | { | - | ||||||||||||
| 35 | return ASN1_d2i_fp_of(TS_MSG_IMPRINT, TS_MSG_IMPRINT_new, never executed: return ((TS_MSG_IMPRINT*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_MSG_IMPRINT_new : ((TS_MSG_IMPRINT *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_MSG_IMPRINT : ((TS_MSG_IMPRINT *(*)(TS_MSG_IMPRINT **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_MSG_IMPRINT**)0)))) ; | 0 | ||||||||||||
| 36 | d2i_TS_MSG_IMPRINT, fp, a); never executed: return ((TS_MSG_IMPRINT*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_MSG_IMPRINT_new : ((TS_MSG_IMPRINT *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_MSG_IMPRINT : ((TS_MSG_IMPRINT *(*)(TS_MSG_IMPRINT **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_MSG_IMPRINT**)0)))) ; | 0 | ||||||||||||
| 37 | } | - | ||||||||||||
| 38 | - | |||||||||||||
| 39 | int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a) | - | ||||||||||||
| 40 | { | - | ||||||||||||
| 41 | return ASN1_i2d_fp_of_const(TS_MSG_IMPRINT, i2d_TS_MSG_IMPRINT, fp, a); never executed: return (ASN1_i2d_fp(((i2d_of_void*) (1 ? i2d_TS_MSG_IMPRINT : ((int (*)(const TS_MSG_IMPRINT *,unsigned char **))0))), fp, ((void*) (1 ? a : (const TS_MSG_IMPRINT*)0)))); | 0 | ||||||||||||
| 42 | } | - | ||||||||||||
| 43 | #endif | - | ||||||||||||
| 44 | - | |||||||||||||
| 45 | ASN1_SEQUENCE(TS_REQ) = { | - | ||||||||||||
| 46 | ASN1_SIMPLE(TS_REQ, version, ASN1_INTEGER), | - | ||||||||||||
| 47 | ASN1_SIMPLE(TS_REQ, msg_imprint, TS_MSG_IMPRINT), | - | ||||||||||||
| 48 | ASN1_OPT(TS_REQ, policy_id, ASN1_OBJECT), | - | ||||||||||||
| 49 | ASN1_OPT(TS_REQ, nonce, ASN1_INTEGER), | - | ||||||||||||
| 50 | ASN1_OPT(TS_REQ, cert_req, ASN1_FBOOLEAN), | - | ||||||||||||
| 51 | ASN1_IMP_SEQUENCE_OF_OPT(TS_REQ, extensions, X509_EXTENSION, 0) | - | ||||||||||||
| 52 | } static_ASN1_SEQUENCE_END(TS_REQ) | - | ||||||||||||
| 53 | - | |||||||||||||
| 54 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_REQ) executed 446 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_REQ *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_REQ_it)));Executed by:
executed 446 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_REQ_it)));Executed by:
never executed: return (TS_REQ *)ASN1_item_new((&(TS_REQ_it))); | 0-3323 | ||||||||||||
| 55 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_REQ) never executed: return ASN1_item_dup((&(TS_REQ_it)), x); | 0 | ||||||||||||
| 56 | TS_REQ *d2i_TS_REQ_bio(BIO *bp, TS_REQ **a) | - | ||||||||||||
| 57 | { | - | ||||||||||||
| 58 | return ASN1_d2i_bio_of(TS_REQ, TS_REQ_new, d2i_TS_REQ, bp, a); never executed: return ((TS_REQ*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_REQ_new : ((TS_REQ *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_REQ : ((TS_REQ *(*)(TS_REQ **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_REQ**)0)))); | 0 | ||||||||||||
| 59 | } | - | ||||||||||||
| 60 | - | |||||||||||||
| 61 | int i2d_TS_REQ_bio(BIO *bp, TS_REQ *a) | - | ||||||||||||
| 62 | { | - | ||||||||||||
| 63 | return ASN1_i2d_bio_of_const(TS_REQ, i2d_TS_REQ, bp, a); never executed: return (ASN1_i2d_bio(((i2d_of_void*) (1 ? i2d_TS_REQ : ((int (*)(const TS_REQ *,unsigned char **))0))), bp, ((void*) (1 ? a : (const TS_REQ*)0)))); | 0 | ||||||||||||
| 64 | } | - | ||||||||||||
| 65 | #ifndef OPENSSL_NO_STDIO | - | ||||||||||||
| 66 | TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a) | - | ||||||||||||
| 67 | { | - | ||||||||||||
| 68 | return ASN1_d2i_fp_of(TS_REQ, TS_REQ_new, d2i_TS_REQ, fp, a); never executed: return ((TS_REQ*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_REQ_new : ((TS_REQ *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_REQ : ((TS_REQ *(*)(TS_REQ **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_REQ**)0)))); | 0 | ||||||||||||
| 69 | } | - | ||||||||||||
| 70 | - | |||||||||||||
| 71 | int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a) | - | ||||||||||||
| 72 | { | - | ||||||||||||
| 73 | return ASN1_i2d_fp_of_const(TS_REQ, i2d_TS_REQ, fp, a); never executed: return (ASN1_i2d_fp(((i2d_of_void*) (1 ? i2d_TS_REQ : ((int (*)(const TS_REQ *,unsigned char **))0))), fp, ((void*) (1 ? a : (const TS_REQ*)0)))); | 0 | ||||||||||||
| 74 | } | - | ||||||||||||
| 75 | #endif | - | ||||||||||||
| 76 | - | |||||||||||||
| 77 | ASN1_SEQUENCE(TS_ACCURACY) = { | - | ||||||||||||
| 78 | ASN1_OPT(TS_ACCURACY, seconds, ASN1_INTEGER), | - | ||||||||||||
| 79 | ASN1_IMP_OPT(TS_ACCURACY, millis, ASN1_INTEGER, 0), | - | ||||||||||||
| 80 | ASN1_IMP_OPT(TS_ACCURACY, micros, ASN1_INTEGER, 1) | - | ||||||||||||
| 81 | } static_ASN1_SEQUENCE_END(TS_ACCURACY) | - | ||||||||||||
| 82 | - | |||||||||||||
| 83 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_ACCURACY) executed 7 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_ACCURACY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_ACCURACY_it)));Executed by:
executed 7 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_ACCURACY_it)));Executed by:
never executed: return (TS_ACCURACY *)ASN1_item_new((&(TS_ACCURACY_it))); | 0-3323 | ||||||||||||
| 84 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_ACCURACY) never executed: return ASN1_item_dup((&(TS_ACCURACY_it)), x); | 0 | ||||||||||||
| 85 | - | |||||||||||||
| 86 | ASN1_SEQUENCE(TS_TST_INFO) = { | - | ||||||||||||
| 87 | ASN1_SIMPLE(TS_TST_INFO, version, ASN1_INTEGER), | - | ||||||||||||
| 88 | ASN1_SIMPLE(TS_TST_INFO, policy_id, ASN1_OBJECT), | - | ||||||||||||
| 89 | ASN1_SIMPLE(TS_TST_INFO, msg_imprint, TS_MSG_IMPRINT), | - | ||||||||||||
| 90 | ASN1_SIMPLE(TS_TST_INFO, serial, ASN1_INTEGER), | - | ||||||||||||
| 91 | ASN1_SIMPLE(TS_TST_INFO, time, ASN1_GENERALIZEDTIME), | - | ||||||||||||
| 92 | ASN1_OPT(TS_TST_INFO, accuracy, TS_ACCURACY), | - | ||||||||||||
| 93 | ASN1_OPT(TS_TST_INFO, ordering, ASN1_FBOOLEAN), | - | ||||||||||||
| 94 | ASN1_OPT(TS_TST_INFO, nonce, ASN1_INTEGER), | - | ||||||||||||
| 95 | ASN1_EXP_OPT(TS_TST_INFO, tsa, GENERAL_NAME, 0), | - | ||||||||||||
| 96 | ASN1_IMP_SEQUENCE_OF_OPT(TS_TST_INFO, extensions, X509_EXTENSION, 1) | - | ||||||||||||
| 97 | } static_ASN1_SEQUENCE_END(TS_TST_INFO) | - | ||||||||||||
| 98 | - | |||||||||||||
| 99 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_TST_INFO) executed 2965 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_TST_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_TST_INFO_it)));Executed by:
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_TST_INFO_it)));never executed: return (TS_TST_INFO *)ASN1_item_new((&(TS_TST_INFO_it))); | 0-3323 | ||||||||||||
| 100 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_TST_INFO) never executed: return ASN1_item_dup((&(TS_TST_INFO_it)), x); | 0 | ||||||||||||
| 101 | TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO **a) | - | ||||||||||||
| 102 | { | - | ||||||||||||
| 103 | return ASN1_d2i_bio_of(TS_TST_INFO, TS_TST_INFO_new, d2i_TS_TST_INFO, bp, never executed: return ((TS_TST_INFO*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_TST_INFO_new : ((TS_TST_INFO *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_TST_INFO : ((TS_TST_INFO *(*)(TS_TST_INFO **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_TST_INFO**)0)))) ; | 0 | ||||||||||||
| 104 | a); never executed: return ((TS_TST_INFO*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_TST_INFO_new : ((TS_TST_INFO *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_TST_INFO : ((TS_TST_INFO *(*)(TS_TST_INFO **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_TST_INFO**)0)))) ; | 0 | ||||||||||||
| 105 | } | - | ||||||||||||
| 106 | - | |||||||||||||
| 107 | int i2d_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO *a) | - | ||||||||||||
| 108 | { | - | ||||||||||||
| 109 | return ASN1_i2d_bio_of_const(TS_TST_INFO, i2d_TS_TST_INFO, bp, a); never executed: return (ASN1_i2d_bio(((i2d_of_void*) (1 ? i2d_TS_TST_INFO : ((int (*)(const TS_TST_INFO *,unsigned char **))0))), bp, ((void*) (1 ? a : (const TS_TST_INFO*)0)))); | 0 | ||||||||||||
| 110 | } | - | ||||||||||||
| 111 | #ifndef OPENSSL_NO_STDIO | - | ||||||||||||
| 112 | TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a) | - | ||||||||||||
| 113 | { | - | ||||||||||||
| 114 | return ASN1_d2i_fp_of(TS_TST_INFO, TS_TST_INFO_new, d2i_TS_TST_INFO, fp, never executed: return ((TS_TST_INFO*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_TST_INFO_new : ((TS_TST_INFO *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_TST_INFO : ((TS_TST_INFO *(*)(TS_TST_INFO **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_TST_INFO**)0)))) ; | 0 | ||||||||||||
| 115 | a); never executed: return ((TS_TST_INFO*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_TST_INFO_new : ((TS_TST_INFO *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_TST_INFO : ((TS_TST_INFO *(*)(TS_TST_INFO **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_TST_INFO**)0)))) ; | 0 | ||||||||||||
| 116 | } | - | ||||||||||||
| 117 | - | |||||||||||||
| 118 | int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a) | - | ||||||||||||
| 119 | { | - | ||||||||||||
| 120 | return ASN1_i2d_fp_of_const(TS_TST_INFO, i2d_TS_TST_INFO, fp, a); never executed: return (ASN1_i2d_fp(((i2d_of_void*) (1 ? i2d_TS_TST_INFO : ((int (*)(const TS_TST_INFO *,unsigned char **))0))), fp, ((void*) (1 ? a : (const TS_TST_INFO*)0)))); | 0 | ||||||||||||
| 121 | } | - | ||||||||||||
| 122 | #endif | - | ||||||||||||
| 123 | - | |||||||||||||
| 124 | ASN1_SEQUENCE(TS_STATUS_INFO) = { | - | ||||||||||||
| 125 | ASN1_SIMPLE(TS_STATUS_INFO, status, ASN1_INTEGER), | - | ||||||||||||
| 126 | ASN1_SEQUENCE_OF_OPT(TS_STATUS_INFO, text, ASN1_UTF8STRING), | - | ||||||||||||
| 127 | ASN1_OPT(TS_STATUS_INFO, failure_info, ASN1_BIT_STRING) | - | ||||||||||||
| 128 | } static_ASN1_SEQUENCE_END(TS_STATUS_INFO) | - | ||||||||||||
| 129 | - | |||||||||||||
| 130 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_STATUS_INFO) executed 168 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_STATUS_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_STATUS_INFO_it)));Executed by:
executed 168 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_STATUS_INFO_it)));Executed by:
never executed: return (TS_STATUS_INFO *)ASN1_item_new((&(TS_STATUS_INFO_it))); | 0-3323 | ||||||||||||
| 131 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_STATUS_INFO) never executed: return ASN1_item_dup((&(TS_STATUS_INFO_it)), x); | 0 | ||||||||||||
| 132 | - | |||||||||||||
| 133 | static int ts_resp_set_tst_info(TS_RESP *a) | - | ||||||||||||
| 134 | { | - | ||||||||||||
| 135 | long status; | - | ||||||||||||
| 136 | - | |||||||||||||
| 137 | status = ASN1_INTEGER_get(a->status_info->status); | - | ||||||||||||
| 138 | - | |||||||||||||
| 139 | if (a->token) {
| 4-5 | ||||||||||||
| 140 | if (status != 0 && status != 1) {
| 1-2 | ||||||||||||
| 141 | TSerr(TS_F_TS_RESP_SET_TST_INFO, TS_R_TOKEN_PRESENT); | - | ||||||||||||
| 142 | return 0; executed 1 time by 1 test: return 0;Executed by:
| 1 | ||||||||||||
| 143 | } | - | ||||||||||||
| 144 | TS_TST_INFO_free(a->tst_info); | - | ||||||||||||
| 145 | a->tst_info = PKCS7_to_TS_TST_INFO(a->token); | - | ||||||||||||
| 146 | if (!a->tst_info) {
| 0-3 | ||||||||||||
| 147 | TSerr(TS_F_TS_RESP_SET_TST_INFO, | - | ||||||||||||
| 148 | TS_R_PKCS7_TO_TS_TST_INFO_FAILED); | - | ||||||||||||
| 149 | return 0; executed 3 times by 1 test: return 0;Executed by:
| 3 | ||||||||||||
| 150 | } | - | ||||||||||||
| 151 | } else if (status == 0 || status == 1) { never executed: end of block
| 0-4 | ||||||||||||
| 152 | TSerr(TS_F_TS_RESP_SET_TST_INFO, TS_R_TOKEN_NOT_PRESENT); | - | ||||||||||||
| 153 | return 0; executed 2 times by 1 test: return 0;Executed by:
| 2 | ||||||||||||
| 154 | } | - | ||||||||||||
| 155 | - | |||||||||||||
| 156 | return 1; executed 3 times by 1 test: return 1;Executed by:
| 3 | ||||||||||||
| 157 | } | - | ||||||||||||
| 158 | - | |||||||||||||
| 159 | static int ts_resp_cb(int op, ASN1_VALUE **pval, const ASN1_ITEM *it, | - | ||||||||||||
| 160 | void *exarg) | - | ||||||||||||
| 161 | { | - | ||||||||||||
| 162 | TS_RESP *ts_resp = (TS_RESP *)*pval; | - | ||||||||||||
| 163 | if (op == ASN1_OP_NEW_POST) {
| 2962-11866 | ||||||||||||
| 164 | ts_resp->tst_info = NULL; | - | ||||||||||||
| 165 | } else if (op == ASN1_OP_FREE_POST) { executed 2962 times by 1 test: end of blockExecuted by:
| 2962-8904 | ||||||||||||
| 166 | TS_TST_INFO_free(ts_resp->tst_info); | - | ||||||||||||
| 167 | } else if (op == ASN1_OP_D2I_POST) { executed 2962 times by 1 test: end of blockExecuted by:
| 9-8895 | ||||||||||||
| 168 | if (ts_resp_set_tst_info(ts_resp) == 0)
| 3-6 | ||||||||||||
| 169 | return 0; executed 6 times by 1 test: return 0;Executed by:
| 6 | ||||||||||||
| 170 | } executed 3 times by 1 test: end of blockExecuted by:
| 3 | ||||||||||||
| 171 | return 1; executed 14822 times by 1 test: return 1;Executed by:
| 14822 | ||||||||||||
| 172 | } | - | ||||||||||||
| 173 | - | |||||||||||||
| 174 | ASN1_SEQUENCE_cb(TS_RESP, ts_resp_cb) = { | - | ||||||||||||
| 175 | ASN1_SIMPLE(TS_RESP, status_info, TS_STATUS_INFO), | - | ||||||||||||
| 176 | ASN1_OPT(TS_RESP, token, PKCS7), | - | ||||||||||||
| 177 | } static_ASN1_SEQUENCE_END_cb(TS_RESP, TS_RESP) | - | ||||||||||||
| 178 | - | |||||||||||||
| 179 | IMPLEMENT_ASN1_FUNCTIONS_const(TS_RESP) executed 3 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (TS_RESP *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(TS_RESP_it)));Executed by:
executed 3 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(TS_RESP_it)));Executed by:
never executed: return (TS_RESP *)ASN1_item_new((&(TS_RESP_it))); | 0-3323 | ||||||||||||
| 180 | - | |||||||||||||
| 181 | IMPLEMENT_ASN1_DUP_FUNCTION(TS_RESP) never executed: return ASN1_item_dup((&(TS_RESP_it)), x); | 0 | ||||||||||||
| 182 | - | |||||||||||||
| 183 | TS_RESP *d2i_TS_RESP_bio(BIO *bp, TS_RESP **a) | - | ||||||||||||
| 184 | { | - | ||||||||||||
| 185 | return ASN1_d2i_bio_of(TS_RESP, TS_RESP_new, d2i_TS_RESP, bp, a); never executed: return ((TS_RESP*)ASN1_d2i_bio( ((void *(*)(void)) (1 ? TS_RESP_new : ((TS_RESP *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_RESP : ((TS_RESP *(*)(TS_RESP **,const unsigned char **,long))0))), bp, ((void**) (1 ? a : (TS_RESP**)0)))); | 0 | ||||||||||||
| 186 | } | - | ||||||||||||
| 187 | - | |||||||||||||
| 188 | int i2d_TS_RESP_bio(BIO *bp, TS_RESP *a) | - | ||||||||||||
| 189 | { | - | ||||||||||||
| 190 | return ASN1_i2d_bio_of_const(TS_RESP, i2d_TS_RESP, bp, a); never executed: return (ASN1_i2d_bio(((i2d_of_void*) (1 ? i2d_TS_RESP : ((int (*)(const TS_RESP *,unsigned char **))0))), bp, ((void*) (1 ? a : (const TS_RESP*)0)))); | 0 | ||||||||||||
| 191 | } | - | ||||||||||||
| 192 | #ifndef OPENSSL_NO_STDIO | - | ||||||||||||
| 193 | TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a) | - | ||||||||||||
| 194 | { | - | ||||||||||||
| 195 | return ASN1_d2i_fp_of(TS_RESP, TS_RESP_new, d2i_TS_RESP, fp, a); never executed: return ((TS_RESP*)ASN1_d2i_fp(((void *(*)(void)) (1 ? TS_RESP_new : ((TS_RESP *(*)(void))0))), ((d2i_of_void*) (1 ? d2i_TS_RESP : ((TS_RESP *(*)(TS_RESP **,const unsigned char **,long))0))), fp, ((void**) (1 ? a : (TS_RESP**)0)))); | 0 | ||||||||||||
| 196 | } | - | ||||||||||||
| 197 | - | |||||||||||||
| 198 | int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a) | - | ||||||||||||
| 199 | { | - | ||||||||||||
| 200 | return ASN1_i2d_fp_of_const(TS_RESP, i2d_TS_RESP, fp, a); never executed: return (ASN1_i2d_fp(((i2d_of_void*) (1 ? i2d_TS_RESP : ((int (*)(const TS_RESP *,unsigned char **))0))), fp, ((void*) (1 ? a : (const TS_RESP*)0)))); | 0 | ||||||||||||
| 201 | } | - | ||||||||||||
| 202 | #endif | - | ||||||||||||
| 203 | - | |||||||||||||
| 204 | ASN1_SEQUENCE(ESS_ISSUER_SERIAL) = { | - | ||||||||||||
| 205 | ASN1_SEQUENCE_OF(ESS_ISSUER_SERIAL, issuer, GENERAL_NAME), | - | ||||||||||||
| 206 | ASN1_SIMPLE(ESS_ISSUER_SERIAL, serial, ASN1_INTEGER) | - | ||||||||||||
| 207 | } static_ASN1_SEQUENCE_END(ESS_ISSUER_SERIAL) | - | ||||||||||||
| 208 | - | |||||||||||||
| 209 | IMPLEMENT_ASN1_FUNCTIONS_const(ESS_ISSUER_SERIAL) executed 1 time by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (ESS_ISSUER_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ESS_ISSUER_SERIAL_it)));Executed by:
executed 1 time by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ESS_ISSUER_SERIAL_it)));Executed by:
never executed: return (ESS_ISSUER_SERIAL *)ASN1_item_new((&(ESS_ISSUER_SERIAL_it))); | 0-3323 | ||||||||||||
| 210 | IMPLEMENT_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) never executed: return ASN1_item_dup((&(ESS_ISSUER_SERIAL_it)), x); | 0 | ||||||||||||
| 211 | - | |||||||||||||
| 212 | ASN1_SEQUENCE(ESS_CERT_ID) = { | - | ||||||||||||
| 213 | ASN1_SIMPLE(ESS_CERT_ID, hash, ASN1_OCTET_STRING), | - | ||||||||||||
| 214 | ASN1_OPT(ESS_CERT_ID, issuer_serial, ESS_ISSUER_SERIAL) | - | ||||||||||||
| 215 | } static_ASN1_SEQUENCE_END(ESS_CERT_ID) | - | ||||||||||||
| 216 | - | |||||||||||||
| 217 | IMPLEMENT_ASN1_FUNCTIONS_const(ESS_CERT_ID) executed 5 times by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (ESS_CERT_ID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ESS_CERT_ID_it)));Executed by:
executed 5 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ESS_CERT_ID_it)));Executed by:
never executed: return (ESS_CERT_ID *)ASN1_item_new((&(ESS_CERT_ID_it))); | 0-3323 | ||||||||||||
| 218 | IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID) never executed: return ASN1_item_dup((&(ESS_CERT_ID_it)), x); | 0 | ||||||||||||
| 219 | - | |||||||||||||
| 220 | ASN1_SEQUENCE(ESS_SIGNING_CERT) = { | - | ||||||||||||
| 221 | ASN1_SEQUENCE_OF(ESS_SIGNING_CERT, cert_ids, ESS_CERT_ID), | - | ||||||||||||
| 222 | ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT, policy_info, POLICYINFO) | - | ||||||||||||
| 223 | } static_ASN1_SEQUENCE_END(ESS_SIGNING_CERT) | - | ||||||||||||
| 224 | - | |||||||||||||
| 225 | IMPLEMENT_ASN1_FUNCTIONS_const(ESS_SIGNING_CERT) executed 1 time by 1 test: end of blockExecuted by:
executed 3323 times by 1 test: return (ESS_SIGNING_CERT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ESS_SIGNING_CERT_it)));Executed by:
executed 1 time by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ESS_SIGNING_CERT_it)));Executed by:
never executed: return (ESS_SIGNING_CERT *)ASN1_item_new((&(ESS_SIGNING_CERT_it))); | 0-3323 | ||||||||||||
| 226 | IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) never executed: return ASN1_item_dup((&(ESS_SIGNING_CERT_it)), x); | 0 | ||||||||||||
| 227 | - | |||||||||||||
| 228 | ASN1_SEQUENCE(ESS_CERT_ID_V2) = { | - | ||||||||||||
| 229 | ASN1_OPT(ESS_CERT_ID_V2, hash_alg, X509_ALGOR), | - | ||||||||||||
| 230 | ASN1_SIMPLE(ESS_CERT_ID_V2, hash, ASN1_OCTET_STRING), | - | ||||||||||||
| 231 | ASN1_OPT(ESS_CERT_ID_V2, issuer_serial, ESS_ISSUER_SERIAL) | - | ||||||||||||
| 232 | } static_ASN1_SEQUENCE_END(ESS_CERT_ID_V2) | - | ||||||||||||
| 233 | - | |||||||||||||
| 234 | IMPLEMENT_ASN1_FUNCTIONS_const(ESS_CERT_ID_V2) never executed: end of blocknever executed: return (ESS_CERT_ID_V2 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ESS_CERT_ID_V2_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ESS_CERT_ID_V2_it)));never executed: return (ESS_CERT_ID_V2 *)ASN1_item_new((&(ESS_CERT_ID_V2_it))); | 0 | ||||||||||||
| 235 | IMPLEMENT_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2) never executed: return ASN1_item_dup((&(ESS_CERT_ID_V2_it)), x); | 0 | ||||||||||||
| 236 | - | |||||||||||||
| 237 | ASN1_SEQUENCE(ESS_SIGNING_CERT_V2) = { | - | ||||||||||||
| 238 | ASN1_SEQUENCE_OF(ESS_SIGNING_CERT_V2, cert_ids, ESS_CERT_ID_V2), | - | ||||||||||||
| 239 | ASN1_SEQUENCE_OF_OPT(ESS_SIGNING_CERT_V2, policy_info, POLICYINFO) | - | ||||||||||||
| 240 | } static_ASN1_SEQUENCE_END(ESS_SIGNING_CERT_V2) | - | ||||||||||||
| 241 | - | |||||||||||||
| 242 | IMPLEMENT_ASN1_FUNCTIONS_const(ESS_SIGNING_CERT_V2) never executed: end of blocknever executed: return (ESS_SIGNING_CERT_V2 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ESS_SIGNING_CERT_V2_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ESS_SIGNING_CERT_V2_it)));never executed: return (ESS_SIGNING_CERT_V2 *)ASN1_item_new((&(ESS_SIGNING_CERT_V2_it))); | 0 | ||||||||||||
| 243 | IMPLEMENT_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2) never executed: return ASN1_item_dup((&(ESS_SIGNING_CERT_V2_it)), x); | 0 | ||||||||||||
| 244 | - | |||||||||||||
| 245 | /* Getting encapsulated TS_TST_INFO object from PKCS7. */ | - | ||||||||||||
| 246 | TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token) | - | ||||||||||||
| 247 | { | - | ||||||||||||
| 248 | PKCS7_SIGNED *pkcs7_signed; | - | ||||||||||||
| 249 | PKCS7 *enveloped; | - | ||||||||||||
| 250 | ASN1_TYPE *tst_info_wrapper; | - | ||||||||||||
| 251 | ASN1_OCTET_STRING *tst_info_der; | - | ||||||||||||
| 252 | const unsigned char *p; | - | ||||||||||||
| 253 | - | |||||||||||||
| 254 | if (!PKCS7_type_is_signed(token)) {
| 1-2 | ||||||||||||
| 255 | TSerr(TS_F_PKCS7_TO_TS_TST_INFO, TS_R_BAD_PKCS7_TYPE); | - | ||||||||||||
| 256 | return NULL; executed 1 time by 1 test: return ((void *)0) ;Executed by:
| 1 | ||||||||||||
| 257 | } | - | ||||||||||||
| 258 | if (PKCS7_get_detached(token)) {
| 0-2 | ||||||||||||
| 259 | TSerr(TS_F_PKCS7_TO_TS_TST_INFO, TS_R_DETACHED_CONTENT); | - | ||||||||||||
| 260 | return NULL; executed 2 times by 1 test: return ((void *)0) ;Executed by:
| 2 | ||||||||||||
| 261 | } | - | ||||||||||||
| 262 | pkcs7_signed = token->d.sign; | - | ||||||||||||
| 263 | enveloped = pkcs7_signed->contents; | - | ||||||||||||
| 264 | if (OBJ_obj2nid(enveloped->type) != NID_id_smime_ct_TSTInfo) {
| 0 | ||||||||||||
| 265 | TSerr(TS_F_PKCS7_TO_TS_TST_INFO, TS_R_BAD_PKCS7_TYPE); | - | ||||||||||||
| 266 | return NULL; never executed: return ((void *)0) ; | 0 | ||||||||||||
| 267 | } | - | ||||||||||||
| 268 | tst_info_wrapper = enveloped->d.other; | - | ||||||||||||
| 269 | if (tst_info_wrapper->type != V_ASN1_OCTET_STRING) {
| 0 | ||||||||||||
| 270 | TSerr(TS_F_PKCS7_TO_TS_TST_INFO, TS_R_BAD_TYPE); | - | ||||||||||||
| 271 | return NULL; never executed: return ((void *)0) ; | 0 | ||||||||||||
| 272 | } | - | ||||||||||||
| 273 | tst_info_der = tst_info_wrapper->value.octet_string; | - | ||||||||||||
| 274 | p = tst_info_der->data; | - | ||||||||||||
| 275 | return d2i_TS_TST_INFO(NULL, &p, tst_info_der->length); never executed: return d2i_TS_TST_INFO( ((void *)0) , &p, tst_info_der->length); | 0 | ||||||||||||
| 276 | } | - | ||||||||||||
| Source code | Switch to Preprocessed file |