motion-openssl 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +53 -0
  3. data/lib/OpenSSL/aes.h +149 -0
  4. data/lib/OpenSSL/asn1.h +1419 -0
  5. data/lib/OpenSSL/asn1_mac.h +579 -0
  6. data/lib/OpenSSL/asn1t.h +973 -0
  7. data/lib/OpenSSL/bio.h +879 -0
  8. data/lib/OpenSSL/blowfish.h +130 -0
  9. data/lib/OpenSSL/bn.h +939 -0
  10. data/lib/OpenSSL/buffer.h +125 -0
  11. data/lib/OpenSSL/camellia.h +132 -0
  12. data/lib/OpenSSL/cast.h +107 -0
  13. data/lib/OpenSSL/cmac.h +82 -0
  14. data/lib/OpenSSL/cms.h +555 -0
  15. data/lib/OpenSSL/comp.h +79 -0
  16. data/lib/OpenSSL/conf.h +267 -0
  17. data/lib/OpenSSL/conf_api.h +89 -0
  18. data/lib/OpenSSL/crypto.h +661 -0
  19. data/lib/OpenSSL/des.h +257 -0
  20. data/lib/OpenSSL/des_old.h +497 -0
  21. data/lib/OpenSSL/dh.h +392 -0
  22. data/lib/OpenSSL/dsa.h +332 -0
  23. data/lib/OpenSSL/dso.h +451 -0
  24. data/lib/OpenSSL/dtls1.h +272 -0
  25. data/lib/OpenSSL/e_os2.h +328 -0
  26. data/lib/OpenSSL/ebcdic.h +26 -0
  27. data/lib/OpenSSL/ec.h +1282 -0
  28. data/lib/OpenSSL/ecdh.h +134 -0
  29. data/lib/OpenSSL/ecdsa.h +335 -0
  30. data/lib/OpenSSL/engine.h +960 -0
  31. data/lib/OpenSSL/err.h +389 -0
  32. data/lib/OpenSSL/evp.h +1534 -0
  33. data/lib/OpenSSL/hmac.h +109 -0
  34. data/lib/OpenSSL/idea.h +105 -0
  35. data/lib/OpenSSL/krb5_asn.h +240 -0
  36. data/lib/OpenSSL/kssl.h +197 -0
  37. data/lib/OpenSSL/lhash.h +240 -0
  38. data/lib/OpenSSL/libcrypto-tvOS.a +0 -0
  39. data/lib/OpenSSL/libcrypto.a +0 -0
  40. data/lib/OpenSSL/libssl-tvOS.a +0 -0
  41. data/lib/OpenSSL/libssl.a +0 -0
  42. data/lib/OpenSSL/md4.h +119 -0
  43. data/lib/OpenSSL/md5.h +119 -0
  44. data/lib/OpenSSL/mdc2.h +94 -0
  45. data/lib/OpenSSL/modes.h +163 -0
  46. data/lib/OpenSSL/obj_mac.h +4194 -0
  47. data/lib/OpenSSL/objects.h +1143 -0
  48. data/lib/OpenSSL/ocsp.h +637 -0
  49. data/lib/OpenSSL/opensslconf.h +262 -0
  50. data/lib/OpenSSL/opensslv.h +97 -0
  51. data/lib/OpenSSL/ossl_typ.h +211 -0
  52. data/lib/OpenSSL/pem.h +615 -0
  53. data/lib/OpenSSL/pem2.h +70 -0
  54. data/lib/OpenSSL/pkcs12.h +342 -0
  55. data/lib/OpenSSL/pkcs7.h +481 -0
  56. data/lib/OpenSSL/pqueue.h +99 -0
  57. data/lib/OpenSSL/rand.h +150 -0
  58. data/lib/OpenSSL/rc2.h +103 -0
  59. data/lib/OpenSSL/rc4.h +88 -0
  60. data/lib/OpenSSL/ripemd.h +105 -0
  61. data/lib/OpenSSL/rsa.h +664 -0
  62. data/lib/OpenSSL/safestack.h +2672 -0
  63. data/lib/OpenSSL/seed.h +149 -0
  64. data/lib/OpenSSL/sha.h +214 -0
  65. data/lib/OpenSSL/srp.h +169 -0
  66. data/lib/OpenSSL/srtp.h +147 -0
  67. data/lib/OpenSSL/ssl.h +3168 -0
  68. data/lib/OpenSSL/ssl2.h +265 -0
  69. data/lib/OpenSSL/ssl23.h +84 -0
  70. data/lib/OpenSSL/ssl3.h +774 -0
  71. data/lib/OpenSSL/stack.h +107 -0
  72. data/lib/OpenSSL/symhacks.h +516 -0
  73. data/lib/OpenSSL/tls1.h +810 -0
  74. data/lib/OpenSSL/ts.h +862 -0
  75. data/lib/OpenSSL/txt_db.h +112 -0
  76. data/lib/OpenSSL/ui.h +415 -0
  77. data/lib/OpenSSL/ui_compat.h +88 -0
  78. data/lib/OpenSSL/whrlpool.h +41 -0
  79. data/lib/OpenSSL/x509.h +1327 -0
  80. data/lib/OpenSSL/x509_vfy.h +647 -0
  81. data/lib/OpenSSL/x509v3.h +1055 -0
  82. data/lib/motion-openssl.rb +8 -0
  83. data/lib/motion-openssl/hooks.rb +8 -0
  84. data/lib/motion-openssl/hooks/openssl.rb +20 -0
  85. data/lib/motion-openssl/version.rb +5 -0
  86. data/motion/openssl.rb +1 -0
  87. data/motion/openssl/random.rb +18 -0
  88. metadata +229 -0
@@ -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
@@ -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