summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/p8_pkey.c
diff options
context:
space:
mode:
authorjsing <>2015-02-11 03:39:51 +0000
committerjsing <>2015-02-11 03:39:51 +0000
commitb07f4d1849544c2c966cb30d49bdb02358dc608d (patch)
treed942bf9cb3a1b441f2c996072292ae69b1aa83d2 /src/lib/libcrypto/asn1/p8_pkey.c
parente816a1ec1d4411707051912b945e8eab7a5a94e8 (diff)
downloadopenbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.tar.gz
openbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.tar.bz2
openbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.zip
Expand most of the ASN1_SEQUENCE* and associated macros, making the data
structures visible and easier to review, without having to wade through layers and layers of asn1t.h macros. Change has been scripted and the generated assembly only differs by changes to line numbers. Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src/lib/libcrypto/asn1/p8_pkey.c')
-rw-r--r--src/lib/libcrypto/asn1/p8_pkey.c56
1 files changed, 49 insertions, 7 deletions
diff --git a/src/lib/libcrypto/asn1/p8_pkey.c b/src/lib/libcrypto/asn1/p8_pkey.c
index f8688ebc17..486aa8d42c 100644
--- a/src/lib/libcrypto/asn1/p8_pkey.c
+++ b/src/lib/libcrypto/asn1/p8_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p8_pkey.c,v 1.13 2015/02/09 15:05:59 jsing Exp $ */ 1/* $OpenBSD: p8_pkey.c,v 1.14 2015/02/11 03:39:51 jsing Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -75,12 +75,54 @@ pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
75 return 1; 75 return 1;
76} 76}
77 77
78ASN1_SEQUENCE_cb(PKCS8_PRIV_KEY_INFO, pkey_cb) = { 78static const ASN1_AUX PKCS8_PRIV_KEY_INFO_aux = {
79 ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, version, ASN1_INTEGER), 79 .app_data = NULL,
80 ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkeyalg, X509_ALGOR), 80 .flags = 0,
81 ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkey, ASN1_ANY), 81 .ref_offset = 0,
82 ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0) 82 .ref_lock = 0,
83} ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) 83 .asn1_cb = pkey_cb,
84 .enc_offset = 0,
85};
86static const ASN1_TEMPLATE PKCS8_PRIV_KEY_INFO_seq_tt[] = {
87 {
88 .flags = 0,
89 .tag = 0,
90 .offset = offsetof(PKCS8_PRIV_KEY_INFO, version),
91 .field_name = "version",
92 .item = &ASN1_INTEGER_it,
93 },
94 {
95 .flags = 0,
96 .tag = 0,
97 .offset = offsetof(PKCS8_PRIV_KEY_INFO, pkeyalg),
98 .field_name = "pkeyalg",
99 .item = &X509_ALGOR_it,
100 },
101 {
102 .flags = 0,
103 .tag = 0,
104 .offset = offsetof(PKCS8_PRIV_KEY_INFO, pkey),
105 .field_name = "pkey",
106 .item = &ASN1_ANY_it,
107 },
108 {
109 .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SET_OF | ASN1_TFLG_OPTIONAL,
110 .tag = 0,
111 .offset = offsetof(PKCS8_PRIV_KEY_INFO, attributes),
112 .field_name = "attributes",
113 .item = &X509_ATTRIBUTE_it,
114 },
115};
116
117const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it = {
118 .itype = ASN1_ITYPE_SEQUENCE,
119 .utype = V_ASN1_SEQUENCE,
120 .templates = PKCS8_PRIV_KEY_INFO_seq_tt,
121 .tcount = sizeof(PKCS8_PRIV_KEY_INFO_seq_tt) / sizeof(ASN1_TEMPLATE),
122 .funcs = &PKCS8_PRIV_KEY_INFO_aux,
123 .size = sizeof(PKCS8_PRIV_KEY_INFO),
124 .sname = "PKCS8_PRIV_KEY_INFO",
125};
84 126
85 127
86PKCS8_PRIV_KEY_INFO * 128PKCS8_PRIV_KEY_INFO *