OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
ecdh
ech_key.c
Go to the documentation of this file.
1
/* crypto/ecdh/ecdh_key.c */
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 software is originally written by Douglas Stebila of
13
* Sun Microsystems Laboratories.
14
*
15
*/
16
/* ====================================================================
17
* Copyright (c) 1998-2003 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
*
[email protected]
.
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
* (
[email protected]
). This product includes software written by Tim
66
* Hudson (
[email protected]
).
67
*
68
*/
69
70
#include "
ech_locl.h
"
71
#ifndef OPENSSL_NO_ENGINE
72
#include <
openssl/engine.h
>
73
#endif
74
75
int
ECDH_compute_key
(
void
*out,
size_t
outlen,
const
EC_POINT
*pub_key,
76
EC_KEY
*eckey,
77
void
*(*KDF)(
const
void
*in,
size_t
inlen,
void
*out,
size_t
*outlen))
78
{
79
ECDH_DATA
*ecdh =
ecdh_check
(eckey);
80
if
(ecdh == NULL)
81
return
0;
82
return
ecdh->
meth
->
compute_key
(out, outlen, pub_key, eckey, KDF);
83
}
Generated on Thu Jan 10 2013 09:53:36 for OpenSSL by
1.8.2