summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/p8_pkey.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-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 *