OpenCoverage

gostr341001_params.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/gost/gostr341001_params.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: gostr341001_params.c,v 1.3 2015/07/20 22:42:56 bcook Exp $ */-
2/*-
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>-
4 * Copyright (c) 2005-2006 Cryptocom LTD-
5 *-
6 * Redistribution and use in source and binary forms, with or without-
7 * modification, are permitted provided that the following conditions-
8 * are met:-
9 *-
10 * 1. Redistributions of source code must retain the above copyright-
11 * notice, this list of conditions and the following disclaimer.-
12 *-
13 * 2. Redistributions in binary form must reproduce the above copyright-
14 * notice, this list of conditions and the following disclaimer in-
15 * the documentation and/or other materials provided with the-
16 * distribution.-
17 *-
18 * 3. All advertising materials mentioning features or use of this-
19 * software must display the following acknowledgment:-
20 * "This product includes software developed by the OpenSSL Project-
21 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"-
22 *-
23 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to-
24 * endorse or promote products derived from this software without-
25 * prior written permission. For written permission, please contact-
26 * openssl-core@openssl.org.-
27 *-
28 * 5. Products derived from this software may not be called "OpenSSL"-
29 * nor may "OpenSSL" appear in their names without prior written-
30 * permission of the OpenSSL Project.-
31 *-
32 * 6. Redistributions of any form whatsoever must retain the following-
33 * acknowledgment:-
34 * "This product includes software developed by the OpenSSL Project-
35 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"-
36 *-
37 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY-
38 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR-
40 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR-
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,-
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT-
43 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-
44 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-
45 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,-
46 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-
47 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED-
48 * OF THE POSSIBILITY OF SUCH DAMAGE.-
49 * ====================================================================-
50 */-
51-
52#include <string.h>-
53-
54#include <openssl/opensslconf.h>-
55-
56#ifndef OPENSSL_NO_GOST-
57#include <openssl/objects.h>-
58#include <openssl/gost.h>-
59-
60#include "gost_locl.h"-
61-
62int-
63GostR3410_get_md_digest(int nid)-
64{-
65 if (nid == NID_id_GostR3411_94_CryptoProParamSet)
nid == 822Description
TRUEnever evaluated
FALSEnever evaluated
0
66 return NID_id_GostR3411_94;
never executed: return 809;
0
67 return nid;
never executed: return nid;
0
68}-
69-
70int-
71GostR3410_get_pk_digest(int nid)-
72{-
73 switch (nid) {-
74 case NID_id_GostR3411_94_CryptoProParamSet:
never executed: case 822:
0
75 return NID_id_GostR3410_2001;
never executed: return 811;
0
76 case NID_id_tc26_gost3411_2012_256:
never executed: case 941:
0
77 return NID_id_tc26_gost3410_2012_256;
never executed: return 946;
0
78 case NID_id_tc26_gost3411_2012_512:
never executed: case 942:
0
79 return NID_id_tc26_gost3410_2012_512;
never executed: return 947;
0
80 default:
never executed: default:
0
81 return NID_undef;
never executed: return 0;
0
82 }-
83}-
84-
85typedef struct GostR3410_params {-
86 const char *name;-
87 int nid;-
88} GostR3410_params;-
89-
90static const GostR3410_params GostR3410_256_params[] = {-
91 { "A", NID_id_GostR3410_2001_CryptoPro_A_ParamSet },-
92 { "B", NID_id_GostR3410_2001_CryptoPro_B_ParamSet },-
93 { "C", NID_id_GostR3410_2001_CryptoPro_C_ParamSet },-
94 { "0", NID_id_GostR3410_2001_TestParamSet },-
95 { "XA", NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet },-
96 { "XB", NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet },-
97 { NULL, NID_undef },-
98};-
99-
100static const GostR3410_params GostR3410_512_params[] = {-
101 { "A", NID_id_tc26_gost_3410_2012_512_paramSetA },-
102 { "B", NID_id_tc26_gost_3410_2012_512_paramSetB },-
103 { NULL, NID_undef },-
104};-
105-
106int-
107GostR3410_256_param_id(const char *value)-
108{-
109 int i;-
110-
111 for (i = 0; GostR3410_256_params[i].nid != NID_undef; i++) {
GostR3410_256_...ms[i].nid != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
112 if (strcasecmp(GostR3410_256_params[i].name, value) == 0)
strcasecmp(Gos...e, value) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
113 return GostR3410_256_params[i].nid;
never executed: return GostR3410_256_params[i].nid;
0
114 }
never executed: end of block
0
115-
116 return NID_undef;
never executed: return 0;
0
117}-
118-
119int-
120GostR3410_512_param_id(const char *value)-
121{-
122 int i;-
123-
124 for (i = 0; GostR3410_512_params[i].nid != NID_undef; i++) {
GostR3410_512_...ms[i].nid != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
125 if (strcasecmp(GostR3410_512_params[i].name, value) == 0)
strcasecmp(Gos...e, value) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
126 return GostR3410_512_params[i].nid;
never executed: return GostR3410_512_params[i].nid;
0
127 }
never executed: end of block
0
128-
129 return NID_undef;
never executed: return 0;
0
130}-
131-
132#endif-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2