motion-openssl 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +53 -0
- data/lib/OpenSSL/aes.h +149 -0
- data/lib/OpenSSL/asn1.h +1419 -0
- data/lib/OpenSSL/asn1_mac.h +579 -0
- data/lib/OpenSSL/asn1t.h +973 -0
- data/lib/OpenSSL/bio.h +879 -0
- data/lib/OpenSSL/blowfish.h +130 -0
- data/lib/OpenSSL/bn.h +939 -0
- data/lib/OpenSSL/buffer.h +125 -0
- data/lib/OpenSSL/camellia.h +132 -0
- data/lib/OpenSSL/cast.h +107 -0
- data/lib/OpenSSL/cmac.h +82 -0
- data/lib/OpenSSL/cms.h +555 -0
- data/lib/OpenSSL/comp.h +79 -0
- data/lib/OpenSSL/conf.h +267 -0
- data/lib/OpenSSL/conf_api.h +89 -0
- data/lib/OpenSSL/crypto.h +661 -0
- data/lib/OpenSSL/des.h +257 -0
- data/lib/OpenSSL/des_old.h +497 -0
- data/lib/OpenSSL/dh.h +392 -0
- data/lib/OpenSSL/dsa.h +332 -0
- data/lib/OpenSSL/dso.h +451 -0
- data/lib/OpenSSL/dtls1.h +272 -0
- data/lib/OpenSSL/e_os2.h +328 -0
- data/lib/OpenSSL/ebcdic.h +26 -0
- data/lib/OpenSSL/ec.h +1282 -0
- data/lib/OpenSSL/ecdh.h +134 -0
- data/lib/OpenSSL/ecdsa.h +335 -0
- data/lib/OpenSSL/engine.h +960 -0
- data/lib/OpenSSL/err.h +389 -0
- data/lib/OpenSSL/evp.h +1534 -0
- data/lib/OpenSSL/hmac.h +109 -0
- data/lib/OpenSSL/idea.h +105 -0
- data/lib/OpenSSL/krb5_asn.h +240 -0
- data/lib/OpenSSL/kssl.h +197 -0
- data/lib/OpenSSL/lhash.h +240 -0
- data/lib/OpenSSL/libcrypto-tvOS.a +0 -0
- data/lib/OpenSSL/libcrypto.a +0 -0
- data/lib/OpenSSL/libssl-tvOS.a +0 -0
- data/lib/OpenSSL/libssl.a +0 -0
- data/lib/OpenSSL/md4.h +119 -0
- data/lib/OpenSSL/md5.h +119 -0
- data/lib/OpenSSL/mdc2.h +94 -0
- data/lib/OpenSSL/modes.h +163 -0
- data/lib/OpenSSL/obj_mac.h +4194 -0
- data/lib/OpenSSL/objects.h +1143 -0
- data/lib/OpenSSL/ocsp.h +637 -0
- data/lib/OpenSSL/opensslconf.h +262 -0
- data/lib/OpenSSL/opensslv.h +97 -0
- data/lib/OpenSSL/ossl_typ.h +211 -0
- data/lib/OpenSSL/pem.h +615 -0
- data/lib/OpenSSL/pem2.h +70 -0
- data/lib/OpenSSL/pkcs12.h +342 -0
- data/lib/OpenSSL/pkcs7.h +481 -0
- data/lib/OpenSSL/pqueue.h +99 -0
- data/lib/OpenSSL/rand.h +150 -0
- data/lib/OpenSSL/rc2.h +103 -0
- data/lib/OpenSSL/rc4.h +88 -0
- data/lib/OpenSSL/ripemd.h +105 -0
- data/lib/OpenSSL/rsa.h +664 -0
- data/lib/OpenSSL/safestack.h +2672 -0
- data/lib/OpenSSL/seed.h +149 -0
- data/lib/OpenSSL/sha.h +214 -0
- data/lib/OpenSSL/srp.h +169 -0
- data/lib/OpenSSL/srtp.h +147 -0
- data/lib/OpenSSL/ssl.h +3168 -0
- data/lib/OpenSSL/ssl2.h +265 -0
- data/lib/OpenSSL/ssl23.h +84 -0
- data/lib/OpenSSL/ssl3.h +774 -0
- data/lib/OpenSSL/stack.h +107 -0
- data/lib/OpenSSL/symhacks.h +516 -0
- data/lib/OpenSSL/tls1.h +810 -0
- data/lib/OpenSSL/ts.h +862 -0
- data/lib/OpenSSL/txt_db.h +112 -0
- data/lib/OpenSSL/ui.h +415 -0
- data/lib/OpenSSL/ui_compat.h +88 -0
- data/lib/OpenSSL/whrlpool.h +41 -0
- data/lib/OpenSSL/x509.h +1327 -0
- data/lib/OpenSSL/x509_vfy.h +647 -0
- data/lib/OpenSSL/x509v3.h +1055 -0
- data/lib/motion-openssl.rb +8 -0
- data/lib/motion-openssl/hooks.rb +8 -0
- data/lib/motion-openssl/hooks/openssl.rb +20 -0
- data/lib/motion-openssl/version.rb +5 -0
- data/motion/openssl.rb +1 -0
- data/motion/openssl/random.rb +18 -0
- metadata +229 -0
data/lib/OpenSSL/ecdh.h
ADDED
@@ -0,0 +1,134 @@
|
|
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
|
+
# define EC_FLAG_COFACTOR_ECDH 0x1000
|
89
|
+
|
90
|
+
const ECDH_METHOD *ECDH_OpenSSL(void);
|
91
|
+
|
92
|
+
void ECDH_set_default_method(const ECDH_METHOD *);
|
93
|
+
const ECDH_METHOD *ECDH_get_default_method(void);
|
94
|
+
int ECDH_set_method(EC_KEY *, const ECDH_METHOD *);
|
95
|
+
|
96
|
+
int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
|
97
|
+
EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen,
|
98
|
+
void *out, size_t *outlen));
|
99
|
+
|
100
|
+
int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
|
101
|
+
*new_func, CRYPTO_EX_dup *dup_func,
|
102
|
+
CRYPTO_EX_free *free_func);
|
103
|
+
int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg);
|
104
|
+
void *ECDH_get_ex_data(EC_KEY *d, int idx);
|
105
|
+
|
106
|
+
int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,
|
107
|
+
const unsigned char *Z, size_t Zlen,
|
108
|
+
const unsigned char *sinfo, size_t sinfolen,
|
109
|
+
const EVP_MD *md);
|
110
|
+
|
111
|
+
/* BEGIN ERROR CODES */
|
112
|
+
/*
|
113
|
+
* The following lines are auto generated by the script mkerr.pl. Any changes
|
114
|
+
* made after this point may be overwritten when the script is next run.
|
115
|
+
*/
|
116
|
+
void ERR_load_ECDH_strings(void);
|
117
|
+
|
118
|
+
/* Error codes for the ECDH functions. */
|
119
|
+
|
120
|
+
/* Function codes. */
|
121
|
+
# define ECDH_F_ECDH_CHECK 102
|
122
|
+
# define ECDH_F_ECDH_COMPUTE_KEY 100
|
123
|
+
# define ECDH_F_ECDH_DATA_NEW_METHOD 101
|
124
|
+
|
125
|
+
/* Reason codes. */
|
126
|
+
# define ECDH_R_KDF_FAILED 102
|
127
|
+
# define ECDH_R_NON_FIPS_METHOD 103
|
128
|
+
# define ECDH_R_NO_PRIVATE_VALUE 100
|
129
|
+
# define ECDH_R_POINT_ARITHMETIC_FAILURE 101
|
130
|
+
|
131
|
+
#ifdef __cplusplus
|
132
|
+
}
|
133
|
+
#endif
|
134
|
+
#endif
|
data/lib/OpenSSL/ecdsa.h
ADDED
@@ -0,0 +1,335 @@
|
|
1
|
+
/* crypto/ecdsa/ecdsa.h */
|
2
|
+
/**
|
3
|
+
* \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions
|
4
|
+
* \author Written by Nils Larsch for the OpenSSL project
|
5
|
+
*/
|
6
|
+
/* ====================================================================
|
7
|
+
* Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved.
|
8
|
+
*
|
9
|
+
* Redistribution and use in source and binary forms, with or without
|
10
|
+
* modification, are permitted provided that the following conditions
|
11
|
+
* are met:
|
12
|
+
*
|
13
|
+
* 1. Redistributions of source code must retain the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer.
|
15
|
+
*
|
16
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
17
|
+
* notice, this list of conditions and the following disclaimer in
|
18
|
+
* the documentation and/or other materials provided with the
|
19
|
+
* distribution.
|
20
|
+
*
|
21
|
+
* 3. All advertising materials mentioning features or use of this
|
22
|
+
* software must display the following acknowledgment:
|
23
|
+
* "This product includes software developed by the OpenSSL Project
|
24
|
+
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
25
|
+
*
|
26
|
+
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
27
|
+
* endorse or promote products derived from this software without
|
28
|
+
* prior written permission. For written permission, please contact
|
29
|
+
* licensing@OpenSSL.org.
|
30
|
+
*
|
31
|
+
* 5. Products derived from this software may not be called "OpenSSL"
|
32
|
+
* nor may "OpenSSL" appear in their names without prior written
|
33
|
+
* permission of the OpenSSL Project.
|
34
|
+
*
|
35
|
+
* 6. Redistributions of any form whatsoever must retain the following
|
36
|
+
* acknowledgment:
|
37
|
+
* "This product includes software developed by the OpenSSL Project
|
38
|
+
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
39
|
+
*
|
40
|
+
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
41
|
+
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
42
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
43
|
+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
44
|
+
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
45
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
46
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
47
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
48
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
49
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
50
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
51
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
52
|
+
* ====================================================================
|
53
|
+
*
|
54
|
+
* This product includes cryptographic software written by Eric Young
|
55
|
+
* (eay@cryptsoft.com). This product includes software written by Tim
|
56
|
+
* Hudson (tjh@cryptsoft.com).
|
57
|
+
*
|
58
|
+
*/
|
59
|
+
#ifndef HEADER_ECDSA_H
|
60
|
+
# define HEADER_ECDSA_H
|
61
|
+
|
62
|
+
# include <openssl/opensslconf.h>
|
63
|
+
|
64
|
+
# ifdef OPENSSL_NO_ECDSA
|
65
|
+
# error ECDSA is disabled.
|
66
|
+
# endif
|
67
|
+
|
68
|
+
# include <openssl/ec.h>
|
69
|
+
# include <openssl/ossl_typ.h>
|
70
|
+
# ifndef OPENSSL_NO_DEPRECATED
|
71
|
+
# include <openssl/bn.h>
|
72
|
+
# endif
|
73
|
+
|
74
|
+
#ifdef __cplusplus
|
75
|
+
extern "C" {
|
76
|
+
#endif
|
77
|
+
|
78
|
+
typedef struct ECDSA_SIG_st {
|
79
|
+
BIGNUM *r;
|
80
|
+
BIGNUM *s;
|
81
|
+
} ECDSA_SIG;
|
82
|
+
|
83
|
+
/** Allocates and initialize a ECDSA_SIG structure
|
84
|
+
* \return pointer to a ECDSA_SIG structure or NULL if an error occurred
|
85
|
+
*/
|
86
|
+
ECDSA_SIG *ECDSA_SIG_new(void);
|
87
|
+
|
88
|
+
/** frees a ECDSA_SIG structure
|
89
|
+
* \param sig pointer to the ECDSA_SIG structure
|
90
|
+
*/
|
91
|
+
void ECDSA_SIG_free(ECDSA_SIG *sig);
|
92
|
+
|
93
|
+
/** DER encode content of ECDSA_SIG object (note: this function modifies *pp
|
94
|
+
* (*pp += length of the DER encoded signature)).
|
95
|
+
* \param sig pointer to the ECDSA_SIG object
|
96
|
+
* \param pp pointer to a unsigned char pointer for the output or NULL
|
97
|
+
* \return the length of the DER encoded ECDSA_SIG object or 0
|
98
|
+
*/
|
99
|
+
int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);
|
100
|
+
|
101
|
+
/** Decodes a DER encoded ECDSA signature (note: this function changes *pp
|
102
|
+
* (*pp += len)).
|
103
|
+
* \param sig pointer to ECDSA_SIG pointer (may be NULL)
|
104
|
+
* \param pp memory buffer with the DER encoded signature
|
105
|
+
* \param len length of the buffer
|
106
|
+
* \return pointer to the decoded ECDSA_SIG structure (or NULL)
|
107
|
+
*/
|
108
|
+
ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);
|
109
|
+
|
110
|
+
/** Computes the ECDSA signature of the given hash value using
|
111
|
+
* the supplied private key and returns the created signature.
|
112
|
+
* \param dgst pointer to the hash value
|
113
|
+
* \param dgst_len length of the hash value
|
114
|
+
* \param eckey EC_KEY object containing a private EC key
|
115
|
+
* \return pointer to a ECDSA_SIG structure or NULL if an error occurred
|
116
|
+
*/
|
117
|
+
ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len,
|
118
|
+
EC_KEY *eckey);
|
119
|
+
|
120
|
+
/** Computes ECDSA signature of a given hash value using the supplied
|
121
|
+
* private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
|
122
|
+
* \param dgst pointer to the hash value to sign
|
123
|
+
* \param dgstlen length of the hash value
|
124
|
+
* \param kinv BIGNUM with a pre-computed inverse k (optional)
|
125
|
+
* \param rp BIGNUM with a pre-computed rp value (optioanl),
|
126
|
+
* see ECDSA_sign_setup
|
127
|
+
* \param eckey EC_KEY object containing a private EC key
|
128
|
+
* \return pointer to a ECDSA_SIG structure or NULL if an error occurred
|
129
|
+
*/
|
130
|
+
ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,
|
131
|
+
const BIGNUM *kinv, const BIGNUM *rp,
|
132
|
+
EC_KEY *eckey);
|
133
|
+
|
134
|
+
/** Verifies that the supplied signature is a valid ECDSA
|
135
|
+
* signature of the supplied hash value using the supplied public key.
|
136
|
+
* \param dgst pointer to the hash value
|
137
|
+
* \param dgst_len length of the hash value
|
138
|
+
* \param sig ECDSA_SIG structure
|
139
|
+
* \param eckey EC_KEY object containing a public EC key
|
140
|
+
* \return 1 if the signature is valid, 0 if the signature is invalid
|
141
|
+
* and -1 on error
|
142
|
+
*/
|
143
|
+
int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
|
144
|
+
const ECDSA_SIG *sig, EC_KEY *eckey);
|
145
|
+
|
146
|
+
const ECDSA_METHOD *ECDSA_OpenSSL(void);
|
147
|
+
|
148
|
+
/** Sets the default ECDSA method
|
149
|
+
* \param meth new default ECDSA_METHOD
|
150
|
+
*/
|
151
|
+
void ECDSA_set_default_method(const ECDSA_METHOD *meth);
|
152
|
+
|
153
|
+
/** Returns the default ECDSA method
|
154
|
+
* \return pointer to ECDSA_METHOD structure containing the default method
|
155
|
+
*/
|
156
|
+
const ECDSA_METHOD *ECDSA_get_default_method(void);
|
157
|
+
|
158
|
+
/** Sets method to be used for the ECDSA operations
|
159
|
+
* \param eckey EC_KEY object
|
160
|
+
* \param meth new method
|
161
|
+
* \return 1 on success and 0 otherwise
|
162
|
+
*/
|
163
|
+
int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth);
|
164
|
+
|
165
|
+
/** Returns the maximum length of the DER encoded signature
|
166
|
+
* \param eckey EC_KEY object
|
167
|
+
* \return numbers of bytes required for the DER encoded signature
|
168
|
+
*/
|
169
|
+
int ECDSA_size(const EC_KEY *eckey);
|
170
|
+
|
171
|
+
/** Precompute parts of the signing operation
|
172
|
+
* \param eckey EC_KEY object containing a private EC key
|
173
|
+
* \param ctx BN_CTX object (optional)
|
174
|
+
* \param kinv BIGNUM pointer for the inverse of k
|
175
|
+
* \param rp BIGNUM pointer for x coordinate of k * generator
|
176
|
+
* \return 1 on success and 0 otherwise
|
177
|
+
*/
|
178
|
+
int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp);
|
179
|
+
|
180
|
+
/** Computes ECDSA signature of a given hash value using the supplied
|
181
|
+
* private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
|
182
|
+
* \param type this parameter is ignored
|
183
|
+
* \param dgst pointer to the hash value to sign
|
184
|
+
* \param dgstlen length of the hash value
|
185
|
+
* \param sig memory for the DER encoded created signature
|
186
|
+
* \param siglen pointer to the length of the returned signature
|
187
|
+
* \param eckey EC_KEY object containing a private EC key
|
188
|
+
* \return 1 on success and 0 otherwise
|
189
|
+
*/
|
190
|
+
int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
|
191
|
+
unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
|
192
|
+
|
193
|
+
/** Computes ECDSA signature of a given hash value using the supplied
|
194
|
+
* private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
|
195
|
+
* \param type this parameter is ignored
|
196
|
+
* \param dgst pointer to the hash value to sign
|
197
|
+
* \param dgstlen length of the hash value
|
198
|
+
* \param sig buffer to hold the DER encoded signature
|
199
|
+
* \param siglen pointer to the length of the returned signature
|
200
|
+
* \param kinv BIGNUM with a pre-computed inverse k (optional)
|
201
|
+
* \param rp BIGNUM with a pre-computed rp value (optioanl),
|
202
|
+
* see ECDSA_sign_setup
|
203
|
+
* \param eckey EC_KEY object containing a private EC key
|
204
|
+
* \return 1 on success and 0 otherwise
|
205
|
+
*/
|
206
|
+
int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen,
|
207
|
+
unsigned char *sig, unsigned int *siglen,
|
208
|
+
const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey);
|
209
|
+
|
210
|
+
/** Verifies that the given signature is valid ECDSA signature
|
211
|
+
* of the supplied hash value using the specified public key.
|
212
|
+
* \param type this parameter is ignored
|
213
|
+
* \param dgst pointer to the hash value
|
214
|
+
* \param dgstlen length of the hash value
|
215
|
+
* \param sig pointer to the DER encoded signature
|
216
|
+
* \param siglen length of the DER encoded signature
|
217
|
+
* \param eckey EC_KEY object containing a public EC key
|
218
|
+
* \return 1 if the signature is valid, 0 if the signature is invalid
|
219
|
+
* and -1 on error
|
220
|
+
*/
|
221
|
+
int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen,
|
222
|
+
const unsigned char *sig, int siglen, EC_KEY *eckey);
|
223
|
+
|
224
|
+
/* the standard ex_data functions */
|
225
|
+
int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
|
226
|
+
*new_func, CRYPTO_EX_dup *dup_func,
|
227
|
+
CRYPTO_EX_free *free_func);
|
228
|
+
int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg);
|
229
|
+
void *ECDSA_get_ex_data(EC_KEY *d, int idx);
|
230
|
+
|
231
|
+
/** Allocates and initialize a ECDSA_METHOD structure
|
232
|
+
* \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL)
|
233
|
+
* \return pointer to a ECDSA_METHOD structure or NULL if an error occurred
|
234
|
+
*/
|
235
|
+
|
236
|
+
ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method);
|
237
|
+
|
238
|
+
/** frees a ECDSA_METHOD structure
|
239
|
+
* \param ecdsa_method pointer to the ECDSA_METHOD structure
|
240
|
+
*/
|
241
|
+
void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method);
|
242
|
+
|
243
|
+
/** Sets application specific data in the ECDSA_METHOD
|
244
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
245
|
+
* \param app application specific data to set
|
246
|
+
*/
|
247
|
+
|
248
|
+
void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app);
|
249
|
+
|
250
|
+
/** Returns application specific data from a ECDSA_METHOD structure
|
251
|
+
* \param ecdsa_method pointer to ECDSA_METHOD structure
|
252
|
+
* \return pointer to application specific data.
|
253
|
+
*/
|
254
|
+
|
255
|
+
void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method);
|
256
|
+
|
257
|
+
/** Set the ECDSA_do_sign function in the ECDSA_METHOD
|
258
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
259
|
+
* \param ecdsa_do_sign a funtion of type ECDSA_do_sign
|
260
|
+
*/
|
261
|
+
|
262
|
+
void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method,
|
263
|
+
ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char
|
264
|
+
*dgst, int dgst_len,
|
265
|
+
const BIGNUM *inv,
|
266
|
+
const BIGNUM *rp,
|
267
|
+
EC_KEY *eckey));
|
268
|
+
|
269
|
+
/** Set the ECDSA_sign_setup function in the ECDSA_METHOD
|
270
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
271
|
+
* \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup
|
272
|
+
*/
|
273
|
+
|
274
|
+
void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method,
|
275
|
+
int (*ecdsa_sign_setup) (EC_KEY *eckey,
|
276
|
+
BN_CTX *ctx,
|
277
|
+
BIGNUM **kinv,
|
278
|
+
BIGNUM **r));
|
279
|
+
|
280
|
+
/** Set the ECDSA_do_verify function in the ECDSA_METHOD
|
281
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
282
|
+
* \param ecdsa_do_verify a funtion of type ECDSA_do_verify
|
283
|
+
*/
|
284
|
+
|
285
|
+
void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method,
|
286
|
+
int (*ecdsa_do_verify) (const unsigned char
|
287
|
+
*dgst, int dgst_len,
|
288
|
+
const ECDSA_SIG *sig,
|
289
|
+
EC_KEY *eckey));
|
290
|
+
|
291
|
+
void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags);
|
292
|
+
|
293
|
+
/** Set the flags field in the ECDSA_METHOD
|
294
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
295
|
+
* \param flags flags value to set
|
296
|
+
*/
|
297
|
+
|
298
|
+
void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name);
|
299
|
+
|
300
|
+
/** Set the name field in the ECDSA_METHOD
|
301
|
+
* \param ecdsa_method pointer to existing ECDSA_METHOD
|
302
|
+
* \param name name to set
|
303
|
+
*/
|
304
|
+
|
305
|
+
/* BEGIN ERROR CODES */
|
306
|
+
/*
|
307
|
+
* The following lines are auto generated by the script mkerr.pl. Any changes
|
308
|
+
* made after this point may be overwritten when the script is next run.
|
309
|
+
*/
|
310
|
+
void ERR_load_ECDSA_strings(void);
|
311
|
+
|
312
|
+
/* Error codes for the ECDSA functions. */
|
313
|
+
|
314
|
+
/* Function codes. */
|
315
|
+
# define ECDSA_F_ECDSA_CHECK 104
|
316
|
+
# define ECDSA_F_ECDSA_DATA_NEW_METHOD 100
|
317
|
+
# define ECDSA_F_ECDSA_DO_SIGN 101
|
318
|
+
# define ECDSA_F_ECDSA_DO_VERIFY 102
|
319
|
+
# define ECDSA_F_ECDSA_METHOD_NEW 105
|
320
|
+
# define ECDSA_F_ECDSA_SIGN_SETUP 103
|
321
|
+
|
322
|
+
/* Reason codes. */
|
323
|
+
# define ECDSA_R_BAD_SIGNATURE 100
|
324
|
+
# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101
|
325
|
+
# define ECDSA_R_ERR_EC_LIB 102
|
326
|
+
# define ECDSA_R_MISSING_PARAMETERS 103
|
327
|
+
# define ECDSA_R_NEED_NEW_SETUP_VALUES 106
|
328
|
+
# define ECDSA_R_NON_FIPS_METHOD 107
|
329
|
+
# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104
|
330
|
+
# define ECDSA_R_SIGNATURE_MALLOC_FAILED 105
|
331
|
+
|
332
|
+
#ifdef __cplusplus
|
333
|
+
}
|
334
|
+
#endif
|
335
|
+
#endif
|