OpenCoverage

tb_ecdh.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/engine/tb_ecdh.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: tb_ecdh.c,v 1.4 2014/06/12 15:49:29 deraadt Exp $ */-
2/* ====================================================================-
3 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.-
4 *-
5 * The Elliptic Curve Public-Key Crypto Library (ECC Code) included-
6 * herein is developed by SUN MICROSYSTEMS, INC., and is contributed-
7 * to the OpenSSL project.-
8 *-
9 * The ECC Code is licensed pursuant to the OpenSSL open source-
10 * license provided below.-
11 *-
12 * The ECDH engine software is originally written by Nils Gura and-
13 * Douglas Stebila of Sun Microsystems Laboratories.-
14 *-
15 */-
16/* ====================================================================-
17 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.-
18 *-
19 * Redistribution and use in source and binary forms, with or without-
20 * modification, are permitted provided that the following conditions-
21 * are met:-
22 *-
23 * 1. Redistributions of source code must retain the above copyright-
24 * notice, this list of conditions and the following disclaimer.-
25 *-
26 * 2. Redistributions in binary form must reproduce the above copyright-
27 * notice, this list of conditions and the following disclaimer in-
28 * the documentation and/or other materials provided with the-
29 * distribution.-
30 *-
31 * 3. All advertising materials mentioning features or use of this-
32 * software must display the following acknowledgment:-
33 * "This product includes software developed by the OpenSSL Project-
34 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"-
35 *-
36 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to-
37 * endorse or promote products derived from this software without-
38 * prior written permission. For written permission, please contact-
39 * licensing@OpenSSL.org.-
40 *-
41 * 5. Products derived from this software may not be called "OpenSSL"-
42 * nor may "OpenSSL" appear in their names without prior written-
43 * permission of the OpenSSL Project.-
44 *-
45 * 6. Redistributions of any form whatsoever must retain the following-
46 * acknowledgment:-
47 * "This product includes software developed by the OpenSSL Project-
48 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"-
49 *-
50 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY-
51 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-
52 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR-
53 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR-
54 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,-
55 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT-
56 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-
57 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-
58 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,-
59 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-
60 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED-
61 * OF THE POSSIBILITY OF SUCH DAMAGE.-
62 * ====================================================================-
63 *-
64 * This product includes cryptographic software written by Eric Young-
65 * (eay@cryptsoft.com). This product includes software written by Tim-
66 * Hudson (tjh@cryptsoft.com).-
67 *-
68 */-
69-
70#include "eng_int.h"-
71-
72/* If this symbol is defined then ENGINE_get_default_ECDH(), the function that is-
73 * used by ECDH to hook in implementation code and cache defaults (etc), will-
74 * display brief debugging summaries to stderr with the 'nid'. */-
75/* #define ENGINE_ECDH_DEBUG */-
76-
77static ENGINE_TABLE *ecdh_table = NULL;-
78static const int dummy_nid = 1;-
79-
80void-
81ENGINE_unregister_ECDH(ENGINE *e)-
82{-
83 engine_table_unregister(&ecdh_table, e);-
84}
never executed: end of block
0
85-
86static void-
87engine_unregister_all_ECDH(void)-
88{-
89 engine_table_cleanup(&ecdh_table);-
90}
never executed: end of block
0
91-
92int-
93ENGINE_register_ECDH(ENGINE *e)-
94{-
95 if (e->ecdh_meth)
e->ecdh_methDescription
TRUEnever evaluated
FALSEnever evaluated
0
96 return engine_table_register(&ecdh_table,
never executed: return engine_table_register(&ecdh_table, engine_unregister_all_ECDH, e, &dummy_nid, 1, 0);
0
97 engine_unregister_all_ECDH, e, &dummy_nid, 1, 0);
never executed: return engine_table_register(&ecdh_table, engine_unregister_all_ECDH, e, &dummy_nid, 1, 0);
0
98 return 1;
never executed: return 1;
0
99}-
100-
101void-
102ENGINE_register_all_ECDH(void)-
103{-
104 ENGINE *e;-
105-
106 for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))
eDescription
TRUEnever evaluated
FALSEnever evaluated
0
107 ENGINE_register_ECDH(e);
never executed: ENGINE_register_ECDH(e);
0
108}
never executed: end of block
0
109-
110int-
111ENGINE_set_default_ECDH(ENGINE *e)-
112{-
113 if (e->ecdh_meth)
e->ecdh_methDescription
TRUEnever evaluated
FALSEnever evaluated
0
114 return engine_table_register(&ecdh_table,
never executed: return engine_table_register(&ecdh_table, engine_unregister_all_ECDH, e, &dummy_nid, 1, 1);
0
115 engine_unregister_all_ECDH, e, &dummy_nid, 1, 1);
never executed: return engine_table_register(&ecdh_table, engine_unregister_all_ECDH, e, &dummy_nid, 1, 1);
0
116 return 1;
never executed: return 1;
0
117}-
118-
119/* Exposed API function to get a functional reference from the implementation-
120 * table (ie. try to get a functional reference from the tabled structural-
121 * references). */-
122ENGINE *-
123ENGINE_get_default_ECDH(void)-
124{-
125 return engine_table_select(&ecdh_table, dummy_nid);
executed 82 times by 2 tests: return engine_table_select(&ecdh_table, dummy_nid);
Executed by:
  • ecdhtest
  • ssltest
82
126}-
127-
128/* Obtains an ECDH implementation from an ENGINE functional reference */-
129const ECDH_METHOD *-
130ENGINE_get_ECDH(const ENGINE *e)-
131{-
132 return e->ecdh_meth;
never executed: return e->ecdh_meth;
0
133}-
134-
135/* Sets an ECDH implementation in an ENGINE structure */-
136int-
137ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth)-
138{-
139 e->ecdh_meth = ecdh_meth;-
140 return 1;
never executed: return 1;
0
141}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2