summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2011-12-21 22:52:52 +0000
committerGreg Hudson <ghudson@mit.edu>2011-12-21 22:52:52 +0000
commitedc26c35049615ec634979738ca4d3e3759e9ad8 (patch)
treeab48defdbe3cc321cf4d4b4948dc771d2e2bcbb9 /src/lib
parent02fff47a6ff9f322431d8c2d50fa463973ec19fd (diff)
Stop using krb5_typed_data structure type
Use the krb5_pa_data structure type when encoding or decoding TYPED-DATA. Leave the krb5_typed_data structure definition in krb5.h with a comment saying not to use it. Remove krb5_free_typed_data (which was never declared in krb5.h). Remove some vestigial accessor stuff related to PKINIT encoding and decoding TYPED-DATA, which was unneeded since r25483. Bump the accessor structure version to 19 accordingly. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25601 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/asn.1/asn1_k_decode.c28
-rw-r--r--src/lib/krb5/asn.1/asn1_k_decode.h6
-rw-r--r--src/lib/krb5/asn.1/asn1_k_encode.c9
-rw-r--r--src/lib/krb5/asn.1/asn1_k_encode.h7
-rw-r--r--src/lib/krb5/asn.1/krb5_decode.c4
-rw-r--r--src/lib/krb5/asn.1/krb5_encode.c2
-rw-r--r--src/lib/krb5/krb/fast.c5
-rw-r--r--src/lib/krb5/krb/kfree.c14
-rw-r--r--src/lib/krb5/libkrb5.exports1
-rw-r--r--src/lib/krb5/os/accessor.c2
10 files changed, 26 insertions, 52 deletions
diff --git a/src/lib/krb5/asn.1/asn1_k_decode.c b/src/lib/krb5/asn.1/asn1_k_decode.c
index 9d052ca37..f05d9dfe7 100644
--- a/src/lib/krb5/asn.1/asn1_k_decode.c
+++ b/src/lib/krb5/asn.1/asn1_k_decode.c
@@ -1725,38 +1725,32 @@ asn1_decode_sequence_of_kdf_alg_id(asn1buf *buf, krb5_data ***val)
#endif /* DISABLE_PKINIT */
-static void free_typed_data(void *dummy, krb5_typed_data *val)
-{
- free(val->data);
- free(val);
-}
-
asn1_error_code
-asn1_decode_sequence_of_typed_data(asn1buf *buf, krb5_typed_data ***val)
+asn1_decode_sequence_of_typed_data(asn1buf *buf, krb5_pa_data ***val)
{
- decode_array_body(krb5_typed_data,asn1_decode_typed_data_ptr,
- free_typed_data);
+ decode_array_body(krb5_pa_data,asn1_decode_typed_data_ptr,
+ free_pa_data);
}
asn1_error_code
-asn1_decode_typed_data(asn1buf *buf, krb5_typed_data *val)
+asn1_decode_typed_data(asn1buf *buf, krb5_pa_data *val)
{
setup();
- val->data = NULL;
+ val->contents = NULL;
{ begin_structure();
- get_field(val->type,0,asn1_decode_int32);
- get_lenfield(val->length,val->data,1,asn1_decode_octetstring);
+ get_field(val->pa_type,0,asn1_decode_int32);
+ get_lenfield(val->length,val->contents,1,asn1_decode_octetstring);
end_structure();
}
return 0;
error_out:
- free(val->data);
- val->data = NULL;
+ free(val->contents);
+ val->contents = NULL;
return retval;
}
asn1_error_code
-asn1_decode_typed_data_ptr(asn1buf *buf, krb5_typed_data **valptr)
+asn1_decode_typed_data_ptr(asn1buf *buf, krb5_pa_data **valptr)
{
- decode_ptr(krb5_typed_data *, asn1_decode_typed_data);
+ decode_ptr(krb5_pa_data *, asn1_decode_typed_data);
}
diff --git a/src/lib/krb5/asn.1/asn1_k_decode.h b/src/lib/krb5/asn.1/asn1_k_decode.h
index 71eebb14a..34055eadd 100644
--- a/src/lib/krb5/asn.1/asn1_k_decode.h
+++ b/src/lib/krb5/asn.1/asn1_k_decode.h
@@ -205,10 +205,10 @@ asn1_error_code
asn1_decode_reply_key_pack_draft9(asn1buf *buf,
krb5_reply_key_pack_draft9 *val);
asn1_error_code
-asn1_decode_sequence_of_typed_data(asn1buf *buf, krb5_typed_data ***val);
-asn1_error_code asn1_decode_typed_data(asn1buf *buf, krb5_typed_data *val);
+asn1_decode_sequence_of_typed_data(asn1buf *buf, krb5_pa_data ***val);
+asn1_error_code asn1_decode_typed_data(asn1buf *buf, krb5_pa_data *val);
asn1_error_code asn1_decode_typed_data_ptr(asn1buf *buf,
- krb5_typed_data **valptr);
+ krb5_pa_data **valptr);
/* arrays */
asn1_error_code asn1_decode_authorization_data(asn1buf *buf,
diff --git a/src/lib/krb5/asn.1/asn1_k_encode.c b/src/lib/krb5/asn.1/asn1_k_encode.c
index 351281eeb..82f99b12b 100644
--- a/src/lib/krb5/asn.1/asn1_k_encode.c
+++ b/src/lib/krb5/asn.1/asn1_k_encode.c
@@ -2128,7 +2128,8 @@ encode_krb5_pkinit_supp_pub_info(const krb5_pkinit_supp_pub_info *rep,
#endif /* not DISABLE_PKINIT */
asn1_error_code
-asn1_encode_sequence_of_typed_data(asn1buf *buf, const krb5_typed_data **val,
+asn1_encode_sequence_of_typed_data(asn1buf *buf,
+ const krb5_pa_data *const *val,
unsigned int *retlen)
{
asn1_setup();
@@ -2150,12 +2151,12 @@ asn1_encode_sequence_of_typed_data(asn1buf *buf, const krb5_typed_data **val,
}
asn1_error_code
-asn1_encode_typed_data(asn1buf *buf, const krb5_typed_data *val,
+asn1_encode_typed_data(asn1buf *buf, const krb5_pa_data *val,
unsigned int *retlen)
{
asn1_setup();
- asn1_addlenfield(val->length, val->data, 1, asn1_encode_octetstring);
- asn1_addfield(val->type, 0, asn1_encode_integer);
+ asn1_addlenfield(val->length, val->contents, 1, asn1_encode_octetstring);
+ asn1_addfield(val->pa_type, 0, asn1_encode_integer);
asn1_makeseq();
asn1_cleanup();
}
diff --git a/src/lib/krb5/asn.1/asn1_k_encode.h b/src/lib/krb5/asn.1/asn1_k_encode.h
index 604ca6a21..634105fce 100644
--- a/src/lib/krb5/asn.1/asn1_k_encode.h
+++ b/src/lib/krb5/asn.1/asn1_k_encode.h
@@ -150,11 +150,10 @@ asn1_error_code asn1_encode_td_trusted_certifiers(
unsigned int *retlen);
asn1_error_code asn1_encode_typed_data(asn1buf *buf,
- const krb5_typed_data *val,
+ const krb5_pa_data *val,
unsigned int *retlen);
-asn1_error_code asn1_encode_sequence_of_typed_data(asn1buf *buf,
- const krb5_typed_data **val,
- unsigned int *retlen);
+asn1_error_code asn1_encode_sequence_of_typed_data(
+ asn1buf *buf, const krb5_pa_data *const *val, unsigned int *retlen);
#endif
diff --git a/src/lib/krb5/asn.1/krb5_decode.c b/src/lib/krb5/asn.1/krb5_decode.c
index 10ebcac1c..5ac6db999 100644
--- a/src/lib/krb5/asn.1/krb5_decode.c
+++ b/src/lib/krb5/asn.1/krb5_decode.c
@@ -1077,9 +1077,9 @@ decode_krb5_td_dh_parameters(const krb5_data *code,
#endif /* DISABLE_PKINIT */
krb5_error_code
-decode_krb5_typed_data(const krb5_data *code, krb5_typed_data ***repptr)
+decode_krb5_typed_data(const krb5_data *code, krb5_pa_data ***repptr)
{
- setup_buf_only(krb5_typed_data **);
+ setup_buf_only(krb5_pa_data **);
retval = asn1_decode_sequence_of_typed_data(&buf, &rep);
if (retval) clean_return(retval);
diff --git a/src/lib/krb5/asn.1/krb5_encode.c b/src/lib/krb5/asn.1/krb5_encode.c
index 159407c6d..f88968353 100644
--- a/src/lib/krb5/asn.1/krb5_encode.c
+++ b/src/lib/krb5/asn.1/krb5_encode.c
@@ -169,7 +169,7 @@ encode_krb5_td_dh_parameters(const krb5_algorithm_identifier **rep,
#endif /* DISABLE_PKINIT */
krb5_error_code
-encode_krb5_typed_data(const krb5_typed_data **rep, krb5_data **code)
+encode_krb5_typed_data(const krb5_pa_data *const *rep, krb5_data **code)
{
krb5_setup();
retval = asn1_encode_sequence_of_typed_data(buf,rep,&length);
diff --git a/src/lib/krb5/krb/fast.c b/src/lib/krb5/krb/fast.c
index 7de338b12..612fffda3 100644
--- a/src/lib/krb5/krb/fast.c
+++ b/src/lib/krb5/krb/fast.c
@@ -478,10 +478,7 @@ krb5int_fast_process_error(krb5_context context,
retval = decode_krb5_padata_sequence(&err_reply->e_data,
out_padata);
if (retval != 0) {
- krb5_typed_data **tdata;
- /* krb5_typed data and krb5_pa_data are compatible. */
- if (decode_krb5_typed_data(&err_reply->e_data, &tdata) == 0)
- *out_padata = (krb5_pa_data **)tdata;
+ (void)decode_krb5_typed_data(&err_reply->e_data, out_padata);
retval = 0;
}
}
diff --git a/src/lib/krb5/krb/kfree.c b/src/lib/krb5/krb/kfree.c
index 2a323ec6f..c6dd0debe 100644
--- a/src/lib/krb5/krb/kfree.c
+++ b/src/lib/krb5/krb/kfree.c
@@ -858,20 +858,6 @@ krb5_free_fast_finished(krb5_context context, krb5_fast_finished *val)
free(val);
}
-void
-krb5_free_typed_data(krb5_context context, krb5_typed_data **in)
-{
- int i = 0;
- if (in == NULL) return;
- while (in[i] != NULL) {
- if (in[i]->data != NULL)
- free(in[i]->data);
- free(in[i]);
- i++;
- }
- free(in);
-}
-
void KRB5_CALLCONV
krb5_free_fast_armored_req(krb5_context context, krb5_fast_armored_req *val)
{
diff --git a/src/lib/krb5/libkrb5.exports b/src/lib/krb5/libkrb5.exports
index 5da2d2360..183d5ee76 100644
--- a/src/lib/krb5/libkrb5.exports
+++ b/src/lib/krb5/libkrb5.exports
@@ -339,7 +339,6 @@ krb5_free_tgt_creds
krb5_free_ticket
krb5_free_tickets
krb5_free_tkt_authent
-krb5_free_typed_data
krb5_free_unparsed_name
krb5_fwd_tgt_creds
krb5_gen_portaddr
diff --git a/src/lib/krb5/os/accessor.c b/src/lib/krb5/os/accessor.c
index 5914e2b3f..52df8bccf 100644
--- a/src/lib/krb5/os/accessor.c
+++ b/src/lib/krb5/os/accessor.c
@@ -88,7 +88,6 @@ krb5int_accessor(krb5int_access *internals, krb5_int32 version)
SC (encode_krb5_kdc_dh_key_info, encode_krb5_kdc_dh_key_info),
SC (encode_krb5_reply_key_pack, encode_krb5_reply_key_pack),
SC (encode_krb5_reply_key_pack_draft9, encode_krb5_reply_key_pack_draft9),
- SC (encode_krb5_typed_data, encode_krb5_typed_data),
SC (encode_krb5_td_trusted_certifiers, encode_krb5_td_trusted_certifiers),
SC (encode_krb5_td_dh_parameters, encode_krb5_td_dh_parameters),
SC (decode_krb5_pa_pk_as_req, decode_krb5_pa_pk_as_req),
@@ -101,7 +100,6 @@ krb5int_accessor(krb5int_access *internals, krb5_int32 version)
SC (decode_krb5_principal_name, decode_krb5_principal_name),
SC (decode_krb5_reply_key_pack, decode_krb5_reply_key_pack),
SC (decode_krb5_reply_key_pack_draft9, decode_krb5_reply_key_pack_draft9),
- SC (decode_krb5_typed_data, decode_krb5_typed_data),
SC (decode_krb5_td_trusted_certifiers, decode_krb5_td_trusted_certifiers),
SC (decode_krb5_td_dh_parameters, decode_krb5_td_dh_parameters),
SC (decode_krb5_as_req, decode_krb5_as_req),