summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/n_pkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/n_pkey.c')
-rw-r--r--src/lib/libcrypto/asn1/n_pkey.c78
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
90ASN1_BROKEN_SEQUENCE(NETSCAPE_ENCRYPTED_PKEY) = { 90static 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};
98static 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
115const 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
95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 125DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY)
96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) 126DECLARE_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
123ASN1_SEQUENCE(NETSCAPE_PKEY) = { 153static 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
177const 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
129DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 187DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY)
130DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) 188DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY)