OpenCoverage

asn_moid.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/asn_moid.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: asn_moid.c,v 1.13 2017/01/29 17:49:22 beck Exp $ */-
2/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL-
3 * project 2001.-
4 */-
5/* ====================================================================-
6 * Copyright (c) 2001-2004 The OpenSSL Project. All rights reserved.-
7 *-
8 * Redistribution and use in source and binary forms, with or without-
9 * modification, are permitted provided that the following conditions-
10 * are met:-
11 *-
12 * 1. Redistributions of source code must retain the above copyright-
13 * notice, this list of conditions and the following disclaimer.-
14 *-
15 * 2. Redistributions in binary form must reproduce the above copyright-
16 * notice, this list of conditions and the following disclaimer in-
17 * the documentation and/or other materials provided with the-
18 * distribution.-
19 *-
20 * 3. All advertising materials mentioning features or use of this-
21 * software must display the following acknowledgment:-
22 * "This product includes software developed by the OpenSSL Project-
23 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"-
24 *-
25 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to-
26 * endorse or promote products derived from this software without-
27 * prior written permission. For written permission, please contact-
28 * licensing@OpenSSL.org.-
29 *-
30 * 5. Products derived from this software may not be called "OpenSSL"-
31 * nor may "OpenSSL" appear in their names without prior written-
32 * permission of the OpenSSL Project.-
33 *-
34 * 6. Redistributions of any form whatsoever must retain the following-
35 * acknowledgment:-
36 * "This product includes software developed by the OpenSSL Project-
37 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"-
38 *-
39 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY-
40 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-
41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR-
42 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR-
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,-
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT-
45 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-
46 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,-
48 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-
49 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED-
50 * OF THE POSSIBILITY OF SUCH DAMAGE.-
51 * ====================================================================-
52 *-
53 * This product includes cryptographic software written by Eric Young-
54 * (eay@cryptsoft.com). This product includes software written by Tim-
55 * Hudson (tjh@cryptsoft.com).-
56 *-
57 */-
58-
59#include <ctype.h>-
60#include <stdio.h>-
61#include <string.h>-
62-
63#include <openssl/err.h>-
64#include <openssl/conf.h>-
65#include <openssl/crypto.h>-
66#include <openssl/x509.h>-
67-
68/* Simple ASN1 OID module: add all objects in a given section */-
69-
70static int do_create(char *value, char *name);-
71-
72static int-
73oid_module_init(CONF_IMODULE *md, const CONF *cnf)-
74{-
75 int i;-
76 const char *oid_section;-
77 STACK_OF(CONF_VALUE) *sktmp;-
78 CONF_VALUE *oval;-
79-
80 oid_section = CONF_imodule_get_value(md);-
81 if (!(sktmp = NCONF_get_section(cnf, oid_section))) {
!(sktmp = NCON... oid_section))Description
TRUEnever evaluated
FALSEnever evaluated
0
82 ASN1error(ASN1_R_ERROR_LOADING_SECTION);-
83 return 0;
never executed: return 0;
0
84 }-
85 for (i = 0; i < sk_CONF_VALUE_num(sktmp); i++) {
i < sk_num(((_...NF_VALUE*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
0
86 oval = sk_CONF_VALUE_value(sktmp, i);-
87 if (!do_create(oval->value, oval->name)) {
!do_create(ova...e, oval->name)Description
TRUEnever evaluated
FALSEnever evaluated
0
88 ASN1error(ASN1_R_ADDING_OBJECT);-
89 return 0;
never executed: return 0;
0
90 }-
91 }
never executed: end of block
0
92 return 1;
never executed: return 1;
0
93}-
94-
95static void-
96oid_module_finish(CONF_IMODULE *md)-
97{-
98 OBJ_cleanup();-
99}
never executed: end of block
0
100-
101void-
102ASN1_add_oid_module(void)-
103{-
104 CONF_module_add("oid_section", oid_module_init, oid_module_finish);-
105}
executed 1 time by 1 test: end of block
Executed by:
  • gost2814789t
1
106-
107/* Create an OID based on a name value pair. Accept two formats.-
108 * shortname = 1.2.3.4-
109 * shortname = some long name, 1.2.3.4-
110 */-
111-
112static int-
113do_create(char *value, char *name)-
114{-
115 int nid;-
116 ASN1_OBJECT *oid;-
117 char *ln, *ostr, *p, *lntmp;-
118-
119 p = strrchr(value, ',');-
120 if (!p) {
!pDescription
TRUEnever evaluated
FALSEnever evaluated
0
121 ln = name;-
122 ostr = value;-
123 } else {
never executed: end of block
0
124 ln = NULL;-
125 ostr = p + 1;-
126 if (!*ostr)
!*ostrDescription
TRUEnever evaluated
FALSEnever evaluated
0
127 return 0;
never executed: return 0;
0
128 while (isspace((unsigned char)*ostr))
((*__ctype_b_l...int) _ISspace)Description
TRUEnever evaluated
FALSEnever evaluated
0
129 ostr++;
never executed: ostr++;
0
130 }
never executed: end of block
0
131-
132 nid = OBJ_create(ostr, name, ln);-
133-
134 if (nid == NID_undef)
nid == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
135 return 0;
never executed: return 0;
0
136-
137 if (p) {
pDescription
TRUEnever evaluated
FALSEnever evaluated
0
138 ln = value;-
139 while (isspace((unsigned char)*ln))
((*__ctype_b_l...int) _ISspace)Description
TRUEnever evaluated
FALSEnever evaluated
0
140 ln++;
never executed: ln++;
0
141 p--;-
142 while (isspace((unsigned char)*p)) {
((*__ctype_b_l...int) _ISspace)Description
TRUEnever evaluated
FALSEnever evaluated
0
143 if (p == ln)
p == lnDescription
TRUEnever evaluated
FALSEnever evaluated
0
144 return 0;
never executed: return 0;
0
145 p--;-
146 }
never executed: end of block
0
147 p++;-
148 lntmp = malloc((p - ln) + 1);-
149 if (lntmp == NULL)
lntmp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
150 return 0;
never executed: return 0;
0
151 memcpy(lntmp, ln, p - ln);-
152 lntmp[p - ln] = 0;-
153 oid = OBJ_nid2obj(nid);-
154 oid->ln = lntmp;-
155 }
never executed: end of block
0
156-
157 return 1;
never executed: return 1;
0
158}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2