diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/n_pkey.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/n_pkey.c | 78 |
1 files changed, 68 insertions, 10 deletions
diff --git a/src/lib/libcrypto/asn1/n_pkey.c b/src/lib/libcrypto/asn1/n_pkey.c index 198ca97c09..8f65a4b926 100644 --- a/src/lib/libcrypto/asn1/n_pkey.c +++ b/src/lib/libcrypto/asn1/n_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: n_pkey.c,v 1.23 2015/02/10 04:01:26 jsing Exp $ */ | 1 | /* $OpenBSD: n_pkey.c,v 1.24 2015/02/11 03:39:51 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -87,10 +87,40 @@ typedef struct netscape_encrypted_pkey_st { | |||
| 87 | } NETSCAPE_ENCRYPTED_PKEY; | 87 | } NETSCAPE_ENCRYPTED_PKEY; |
| 88 | 88 | ||
| 89 | 89 | ||
| 90 | ASN1_BROKEN_SEQUENCE(NETSCAPE_ENCRYPTED_PKEY) = { | 90 | static const ASN1_AUX NETSCAPE_ENCRYPTED_PKEY_aux = { |
| 91 | ASN1_SIMPLE(NETSCAPE_ENCRYPTED_PKEY, os, ASN1_OCTET_STRING), | 91 | .app_data = NULL, |
| 92 | ASN1_SIMPLE(NETSCAPE_ENCRYPTED_PKEY, enckey, X509_SIG) | 92 | .flags = ASN1_AFLG_BROKEN, |
| 93 | } ASN1_BROKEN_SEQUENCE_END(NETSCAPE_ENCRYPTED_PKEY) | 93 | .ref_offset = 0, |
| 94 | .ref_lock = 0, | ||
| 95 | .asn1_cb = NULL, | ||
| 96 | .enc_offset = 0, | ||
| 97 | }; | ||
| 98 | static const ASN1_TEMPLATE NETSCAPE_ENCRYPTED_PKEY_seq_tt[] = { | ||
| 99 | { | ||
| 100 | .flags = 0, | ||
| 101 | .tag = 0, | ||
| 102 | .offset = offsetof(NETSCAPE_ENCRYPTED_PKEY, os), | ||
| 103 | .field_name = "os", | ||
| 104 | .item = &ASN1_OCTET_STRING_it, | ||
| 105 | }, | ||
| 106 | { | ||
| 107 | .flags = 0, | ||
| 108 | .tag = 0, | ||
| 109 | .offset = offsetof(NETSCAPE_ENCRYPTED_PKEY, enckey), | ||
| 110 | .field_name = "enckey", | ||
| 111 | .item = &X509_SIG_it, | ||
| 112 | }, | ||
| 113 | }; | ||
| 114 | |||
| 115 | const ASN1_ITEM NETSCAPE_ENCRYPTED_PKEY_it = { | ||
| 116 | .itype = ASN1_ITYPE_SEQUENCE, | ||
| 117 | .utype = V_ASN1_SEQUENCE, | ||
| 118 | .templates = NETSCAPE_ENCRYPTED_PKEY_seq_tt, | ||
| 119 | .tcount = sizeof(NETSCAPE_ENCRYPTED_PKEY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
| 120 | .funcs = &NETSCAPE_ENCRYPTED_PKEY_aux, | ||
| 121 | .size = sizeof(NETSCAPE_ENCRYPTED_PKEY), | ||
| 122 | .sname = "NETSCAPE_ENCRYPTED_PKEY", | ||
| 123 | }; | ||
| 94 | 124 | ||
| 95 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) | 125 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) |
| 96 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) | 126 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) |
| @@ -120,11 +150,39 @@ NETSCAPE_ENCRYPTED_PKEY_free(NETSCAPE_ENCRYPTED_PKEY *a) | |||
| 120 | ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it); | 150 | ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it); |
| 121 | } | 151 | } |
| 122 | 152 | ||
| 123 | ASN1_SEQUENCE(NETSCAPE_PKEY) = { | 153 | static const ASN1_TEMPLATE NETSCAPE_PKEY_seq_tt[] = { |
| 124 | ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG), | 154 | { |
| 125 | ASN1_SIMPLE(NETSCAPE_PKEY, algor, X509_ALGOR), | 155 | .flags = 0, |
| 126 | ASN1_SIMPLE(NETSCAPE_PKEY, private_key, ASN1_OCTET_STRING) | 156 | .tag = 0, |
| 127 | } ASN1_SEQUENCE_END(NETSCAPE_PKEY) | 157 | .offset = offsetof(NETSCAPE_PKEY, version), |
| 158 | .field_name = "version", | ||
| 159 | .item = &LONG_it, | ||
| 160 | }, | ||
| 161 | { | ||
| 162 | .flags = 0, | ||
| 163 | .tag = 0, | ||
| 164 | .offset = offsetof(NETSCAPE_PKEY, algor), | ||
| 165 | .field_name = "algor", | ||
| 166 | .item = &X509_ALGOR_it, | ||
| 167 | }, | ||
| 168 | { | ||
| 169 | .flags = 0, | ||
| 170 | .tag = 0, | ||
| 171 | .offset = offsetof(NETSCAPE_PKEY, private_key), | ||
| 172 | .field_name = "private_key", | ||
| 173 | .item = &ASN1_OCTET_STRING_it, | ||
| 174 | }, | ||
| 175 | }; | ||
| 176 | |||
| 177 | const ASN1_ITEM NETSCAPE_PKEY_it = { | ||
| 178 | .itype = ASN1_ITYPE_SEQUENCE, | ||
| 179 | .utype = V_ASN1_SEQUENCE, | ||
| 180 | .templates = NETSCAPE_PKEY_seq_tt, | ||
| 181 | .tcount = sizeof(NETSCAPE_PKEY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
| 182 | .funcs = NULL, | ||
| 183 | .size = sizeof(NETSCAPE_PKEY), | ||
| 184 | .sname = "NETSCAPE_PKEY", | ||
| 185 | }; | ||
| 128 | 186 | ||
| 129 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) | 187 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) |
| 130 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) | 188 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) |
