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.
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