Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / openssl / ecdh.h @ 13

History | View | Annotate | Download (4.82 KB)

1
/* crypto/ecdh/ecdh.h */
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) 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
#ifndef HEADER_ECDH_H
70
# define HEADER_ECDH_H
71

    
72
# include <openssl/opensslconf.h>
73

    
74
# ifdef OPENSSL_NO_ECDH
75
#  error ECDH is disabled.
76
# endif
77

    
78
# include <openssl/ec.h>
79
# include <openssl/ossl_typ.h>
80
# ifndef OPENSSL_NO_DEPRECATED
81
#  include <openssl/bn.h>
82
# endif
83

    
84
#ifdef __cplusplus
85
extern "C" {
86
#endif
87

    
88
const ECDH_METHOD *ECDH_OpenSSL(void);
89

    
90
void ECDH_set_default_method(const ECDH_METHOD *);
91
const ECDH_METHOD *ECDH_get_default_method(void);
92
int ECDH_set_method(EC_KEY *, const ECDH_METHOD *);
93

    
94
int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
95
                     EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen,
96
                                                 void *out, size_t *outlen));
97

    
98
int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
99
                          *new_func, CRYPTO_EX_dup *dup_func,
100
                          CRYPTO_EX_free *free_func);
101
int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg);
102
void *ECDH_get_ex_data(EC_KEY *d, int idx);
103

    
104
/* BEGIN ERROR CODES */
105
/*
106
 * The following lines are auto generated by the script mkerr.pl. Any changes
107
 * made after this point may be overwritten when the script is next run.
108
 */
109
void ERR_load_ECDH_strings(void);
110

    
111
/* Error codes for the ECDH functions. */
112

    
113
/* Function codes. */
114
# define ECDH_F_ECDH_CHECK                                102
115
# define ECDH_F_ECDH_COMPUTE_KEY                          100
116
# define ECDH_F_ECDH_DATA_NEW_METHOD                      101
117

    
118
/* Reason codes. */
119
# define ECDH_R_KDF_FAILED                                102
120
# define ECDH_R_NON_FIPS_METHOD                           103
121
# define ECDH_R_NO_PRIVATE_VALUE                          100
122
# define ECDH_R_POINT_ARITHMETIC_FAILURE                  101
123

    
124
#ifdef  __cplusplus
125
}
126
#endif
127
#endif