summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec/ec_asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/ec/ec_asn1.c')
-rw-r--r--src/lib/libcrypto/ec/ec_asn1.c54
1 files changed, 51 insertions, 3 deletions
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c
index c54f6593d5..11d924d30f 100644
--- a/src/lib/libcrypto/ec/ec_asn1.c
+++ b/src/lib/libcrypto/ec/ec_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ 1/* $OpenBSD: ec_asn1.c,v 1.11 2015/02/10 04:01:26 jsing Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -258,7 +258,31 @@ ASN1_CHOICE(ECPKPARAMETERS) = {
258} ASN1_CHOICE_END(ECPKPARAMETERS) 258} ASN1_CHOICE_END(ECPKPARAMETERS)
259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 259DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS)
260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS) 260DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS)
261IMPLEMENT_ASN1_FUNCTIONS_const(ECPKPARAMETERS) 261
262ECPKPARAMETERS *
263d2i_ECPKPARAMETERS(ECPKPARAMETERS **a, const unsigned char **in, long len)
264{
265 return (ECPKPARAMETERS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
266 &ECPKPARAMETERS_it);
267}
268
269int
270i2d_ECPKPARAMETERS(const ECPKPARAMETERS *a, unsigned char **out)
271{
272 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECPKPARAMETERS_it);
273}
274
275ECPKPARAMETERS *
276ECPKPARAMETERS_new(void)
277{
278 return (ECPKPARAMETERS *)ASN1_item_new(&ECPKPARAMETERS_it);
279}
280
281void
282ECPKPARAMETERS_free(ECPKPARAMETERS *a)
283{
284 ASN1_item_free((ASN1_VALUE *)a, &ECPKPARAMETERS_it);
285}
262 286
263ASN1_SEQUENCE(EC_PRIVATEKEY) = { 287ASN1_SEQUENCE(EC_PRIVATEKEY) = {
264 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG), 288 ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
@@ -268,7 +292,31 @@ ASN1_SEQUENCE(EC_PRIVATEKEY) = {
268} ASN1_SEQUENCE_END(EC_PRIVATEKEY) 292} ASN1_SEQUENCE_END(EC_PRIVATEKEY)
269DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 293DECLARE_ASN1_FUNCTIONS_const(EC_PRIVATEKEY)
270DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY) 294DECLARE_ASN1_ENCODE_FUNCTIONS_const(EC_PRIVATEKEY, EC_PRIVATEKEY)
271IMPLEMENT_ASN1_FUNCTIONS_const(EC_PRIVATEKEY) 295
296EC_PRIVATEKEY *
297d2i_EC_PRIVATEKEY(EC_PRIVATEKEY **a, const unsigned char **in, long len)
298{
299 return (EC_PRIVATEKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
300 &EC_PRIVATEKEY_it);
301}
302
303int
304i2d_EC_PRIVATEKEY(const EC_PRIVATEKEY *a, unsigned char **out)
305{
306 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EC_PRIVATEKEY_it);
307}
308
309EC_PRIVATEKEY *
310EC_PRIVATEKEY_new(void)
311{
312 return (EC_PRIVATEKEY *)ASN1_item_new(&EC_PRIVATEKEY_it);
313}
314
315void
316EC_PRIVATEKEY_free(EC_PRIVATEKEY *a)
317{
318 ASN1_item_free((ASN1_VALUE *)a, &EC_PRIVATEKEY_it);
319}
272/* some declarations of internal function */ 320/* some declarations of internal function */
273 321
274/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */ 322/* ec_asn1_group2field() sets the values in a X9_62_FIELDID object */