diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/p5_pbev2.c')
-rw-r--r-- | src/lib/libcrypto/asn1/p5_pbev2.c | 78 |
1 files changed, 67 insertions, 11 deletions
diff --git a/src/lib/libcrypto/asn1/p5_pbev2.c b/src/lib/libcrypto/asn1/p5_pbev2.c index 1189e7e26b..f967f25d3d 100644 --- a/src/lib/libcrypto/asn1/p5_pbev2.c +++ b/src/lib/libcrypto/asn1/p5_pbev2.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p5_pbev2.c,v 1.19 2015/02/09 15:05:59 jsing Exp $ */ | 1 | /* $OpenBSD: p5_pbev2.c,v 1.20 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-2004. | 3 | * project 1999-2004. |
4 | */ | 4 | */ |
@@ -66,10 +66,32 @@ | |||
66 | 66 | ||
67 | /* PKCS#5 v2.0 password based encryption structures */ | 67 | /* PKCS#5 v2.0 password based encryption structures */ |
68 | 68 | ||
69 | ASN1_SEQUENCE(PBE2PARAM) = { | 69 | static const ASN1_TEMPLATE PBE2PARAM_seq_tt[] = { |
70 | ASN1_SIMPLE(PBE2PARAM, keyfunc, X509_ALGOR), | 70 | { |
71 | ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR) | 71 | .flags = 0, |
72 | } ASN1_SEQUENCE_END(PBE2PARAM) | 72 | .tag = 0, |
73 | .offset = offsetof(PBE2PARAM, keyfunc), | ||
74 | .field_name = "keyfunc", | ||
75 | .item = &X509_ALGOR_it, | ||
76 | }, | ||
77 | { | ||
78 | .flags = 0, | ||
79 | .tag = 0, | ||
80 | .offset = offsetof(PBE2PARAM, encryption), | ||
81 | .field_name = "encryption", | ||
82 | .item = &X509_ALGOR_it, | ||
83 | }, | ||
84 | }; | ||
85 | |||
86 | const ASN1_ITEM PBE2PARAM_it = { | ||
87 | .itype = ASN1_ITYPE_SEQUENCE, | ||
88 | .utype = V_ASN1_SEQUENCE, | ||
89 | .templates = PBE2PARAM_seq_tt, | ||
90 | .tcount = sizeof(PBE2PARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
91 | .funcs = NULL, | ||
92 | .size = sizeof(PBE2PARAM), | ||
93 | .sname = "PBE2PARAM", | ||
94 | }; | ||
73 | 95 | ||
74 | 96 | ||
75 | PBE2PARAM * | 97 | PBE2PARAM * |
@@ -97,12 +119,46 @@ PBE2PARAM_free(PBE2PARAM *a) | |||
97 | ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it); | 119 | ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it); |
98 | } | 120 | } |
99 | 121 | ||
100 | ASN1_SEQUENCE(PBKDF2PARAM) = { | 122 | static const ASN1_TEMPLATE PBKDF2PARAM_seq_tt[] = { |
101 | ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY), | 123 | { |
102 | ASN1_SIMPLE(PBKDF2PARAM, iter, ASN1_INTEGER), | 124 | .flags = 0, |
103 | ASN1_OPT(PBKDF2PARAM, keylength, ASN1_INTEGER), | 125 | .tag = 0, |
104 | ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR) | 126 | .offset = offsetof(PBKDF2PARAM, salt), |
105 | } ASN1_SEQUENCE_END(PBKDF2PARAM) | 127 | .field_name = "salt", |
128 | .item = &ASN1_ANY_it, | ||
129 | }, | ||
130 | { | ||
131 | .flags = 0, | ||
132 | .tag = 0, | ||
133 | .offset = offsetof(PBKDF2PARAM, iter), | ||
134 | .field_name = "iter", | ||
135 | .item = &ASN1_INTEGER_it, | ||
136 | }, | ||
137 | { | ||
138 | .flags = ASN1_TFLG_OPTIONAL, | ||
139 | .tag = 0, | ||
140 | .offset = offsetof(PBKDF2PARAM, keylength), | ||
141 | .field_name = "keylength", | ||
142 | .item = &ASN1_INTEGER_it, | ||
143 | }, | ||
144 | { | ||
145 | .flags = ASN1_TFLG_OPTIONAL, | ||
146 | .tag = 0, | ||
147 | .offset = offsetof(PBKDF2PARAM, prf), | ||
148 | .field_name = "prf", | ||
149 | .item = &X509_ALGOR_it, | ||
150 | }, | ||
151 | }; | ||
152 | |||
153 | const ASN1_ITEM PBKDF2PARAM_it = { | ||
154 | .itype = ASN1_ITYPE_SEQUENCE, | ||
155 | .utype = V_ASN1_SEQUENCE, | ||
156 | .templates = PBKDF2PARAM_seq_tt, | ||
157 | .tcount = sizeof(PBKDF2PARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
158 | .funcs = NULL, | ||
159 | .size = sizeof(PBKDF2PARAM), | ||
160 | .sname = "PBKDF2PARAM", | ||
161 | }; | ||
106 | 162 | ||
107 | 163 | ||
108 | PBKDF2PARAM * | 164 | PBKDF2PARAM * |