From 7c190872e8c4ade3d93ad8ef172e8fd102c1f7c3 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Fri, 11 Oct 1996 10:27:54 +0000 Subject: [PATCH] removeed git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@839 ec53bebd-3082-4978-b11e-865c3cabbd6b --- der_put.c | 150 --------------------------------- k5_der.c | 247 ------------------------------------------------------ 2 files changed, 397 deletions(-) delete mode 100644 der_put.c delete mode 100644 k5_der.c diff --git a/der_put.c b/der_put.c deleted file mode 100644 index d4eca41e1..000000000 --- a/der_put.c +++ /dev/null @@ -1,150 +0,0 @@ -#include -#include - -/* - * Functions for generating DER - */ - -/* - * All these functions generate the data backwards starting at `ptr' - * and return the length. - */ - -unsigned -der_put_integer (unsigned char *ptr, void *v) -{ - unsigned char *p = ptr; - unsigned i = *(int *)v; - - if (i) { - while(i) { - *p-- = i % 0x100; - i /= 0x100; - } - return ptr - p; - } else { - *p = 0; - return 1; - } -} - -unsigned -der_put_length (unsigned char *ptr, unsigned len) -{ - unsigned char *p = ptr; - - if (len < 0x80) { - *p = len; - return 1; - } else { - unsigned q; - - q = der_put_integer (p, &len); - p -= q; - *p = 0x80 | q; - return q + 1; - } -} - -unsigned -der_put_octetstring (unsigned char *ptr, void *v) -{ - unsigned char *p = ptr; - krb5_data *str = (krb5_data *)v; - int len = str->length; - - p -= len; - memcpy (p + 1, str->data, len); - - return ptr - p; -} - -unsigned -der_put_tag (unsigned char *ptr, Der_class class, Der_type type, unsigned tag) -{ - unsigned char o1; - unsigned char *p = ptr; - - o1 = (class << 6) | (type << 5); - if (tag < 0x1F) - o1 |= tag; - else { - o1 |= 0x1F; - *p-- = tag % 0x80; - tag /= 0x80; - while(tag) { - *p-- = 0x80 | (tag % 0x80); - tag /= 0x80; - } - } - *p-- = o1; - return ptr - p; -} - -unsigned -der_put_type (unsigned char *ptr, Der_class class, Der_type type, - unsigned tag, unsigned len) -{ - unsigned char *p = ptr; - - p -= der_put_length (p, len); - p -= der_put_tag (p, class, type, tag); - return ptr - p; -} - -static unsigned (*put_univ_funcs[])(unsigned char *, void *val) = { - NULL, /* 0 */ - NULL, /* 1 */ - der_put_integer, /* 2 */ - NULL, /* 3 */ - der_put_octetstring, /* 4 */ - NULL, /* 5 */ - NULL, /* 6 */ - NULL, /* 7 */ - NULL, /* 8 */ - NULL, /* 9 */ - NULL, /* 10 */ - NULL, /* 11 */ - NULL, /* 12 */ - NULL, /* 13 */ - NULL, /* 14 */ - NULL, /* 15 */ - NULL, /* 16 */ - NULL, /* 17 */ - NULL, /* 18 */ - NULL, /* 19 */ - NULL, /* 20 */ - NULL, /* 21 */ - NULL, /* 22 */ - NULL, /* 23 */ - der_put_octetstring, /* 24 */ - NULL, /* 25 */ - NULL, /* 26 */ - der_put_octetstring, /* 27 */ -}; - -unsigned -der_put_val (unsigned char *ptr, int type, void *val) -{ - return (*(put_univ_funcs[type]))(ptr, val); -} - -unsigned -der_put_type_and_value (unsigned char *ptr, int type, void *val) -{ - unsigned char *p = ptr; - - p -= der_put_val (p, type, val); - p -= der_put_type (p, UNIV, PRIM, type, ptr - p); - return ptr - p; -} - -unsigned -der_put_context (unsigned char *ptr, int tag, int type, void *val) -{ - unsigned char *p = ptr; - - p -= der_put_type_and_value (p, type, val); - p -= der_put_type (p, CONTEXT, CONS, tag, ptr - p); - return ptr - p; -} diff --git a/k5_der.c b/k5_der.c deleted file mode 100644 index 60874d3a0..000000000 --- a/k5_der.c +++ /dev/null @@ -1,247 +0,0 @@ -#include -#include - -static void -time2generalizedtime (krb5_data *s, time_t t) -{ - struct tm *tm; - - s->data = malloc(16); - s->length = 15; - tm = gmtime (&t); - sprintf (s->data, "%04d%02d%02d%02d%02d%02dZ", tm->tm_year + 1900, - tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, - tm->tm_sec); -} - -unsigned -der_put_context_etypes (unsigned char *ptr, int tag, - krb5_enctype *etypes, unsigned num_etypes) -{ - unsigned char *p = ptr; - int i; - - for (i = num_etypes - 1; i >= 0; --i) - p -= der_put_type_and_value (p, UT_Integer, &etypes[i]); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - p -= der_put_type (p, CONTEXT, CONS, tag, ptr - p); - return ptr - p; -} - -unsigned -der_put_context_principalname (unsigned char *ptr, int tag, - krb5_principal name) -{ - unsigned char *p = ptr; - int i; - - if (name == NULL) - return 0; - for (i = name->ncomp - 1; i >= 0; --i) - p -= der_put_type_and_value (p, UT_GeneralString, - &name->comp[i]); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - p -= der_put_type (p, CONTEXT, CONS, 1, ptr - p); - p -= der_put_context (p, 0, UT_Integer, &name->type); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - p -= der_put_type (p, CONTEXT, CONS, tag, ptr - p); - return ptr - p; -} - -unsigned -der_put_context_kdcoptions (unsigned char *ptr, int tag, KdcOptions *k) -{ - unsigned char *p = ptr; - /* XXX */ - - *p-- = '\0'; - *p-- = '\0'; - *p-- = '\0'; - *p-- = '\0'; - *p-- = '\0'; - *p-- = 5; - *p-- = 3; - p -= der_put_type (p, CONTEXT, CONS, tag, ptr - p); - return ptr - p; -} - -unsigned -der_put_context_hostaddresses (unsigned char *ptr, int tag, - krb5_addresses addrs) -{ - unsigned char *p = ptr; - int i; - - for(i = addrs.number - 1; i >= 0; --i) { - p -= der_put_context (p, 1, UT_OctetString, - &addrs.addrs[i].address); - p -= der_put_context (p, 0, UT_Integer, - &addrs.addrs[i].type); - } - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - p -= der_put_type (p, CONTEXT, CONS, tag, ptr - p); - return ptr - p; -} - -unsigned -der_put_kdc_req_body (unsigned char *ptr, Kdc_Req *k) -{ - unsigned char *p = ptr; - - /* additional-tickets[11] SEQUENCE OF Ticket OPTIONAL */ - /* enc-authorization-data[10] EncryptedData OPTIONAL */ - p -= der_put_context_hostaddresses (p, 9, k->addrs); - /* addresses[9] HostAddresses OPTIONAL */ - p -= der_put_context_etypes (p, 8, k->etypes, k->num_etypes); - p -= der_put_context (p, 7, UT_Integer, &k->nonce); - /* rtime[6] KerberosTime OPTIONAL */ - { - krb5_data t; - - time2generalizedtime (&t, k->till); - p -= der_put_context (p, 5, UT_GeneralizedTime, &t); - string_free (t); - } - /* from[4] KerberosTime OPTIONAL */ - p -= der_put_context_principalname (p, 3, k->sname); - p -= der_put_context (p, 2, UT_GeneralString, &k->realm); - p -= der_put_context_principalname (p, 1, k->cname); - p -= der_put_context_kdcoptions (p, 0, &k->kdc_options); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - return ptr - p; -} - -unsigned -der_put_kdc_req (unsigned char *ptr, int msg_type, Kdc_Req *k) -{ - unsigned char *p = ptr; - - p -= der_put_kdc_req_body (p, k); - p -= der_put_type (p, CONTEXT, CONS, 4, ptr - p); - /* padata[3] SEQUENCE OF PA-DATA OPTIONAL */ - p -= der_put_context (p, 2, UT_Integer, &k->msg_type); - p -= der_put_context (p, 1, UT_Integer, &k->pvno); - p -= der_put_type (p, UNIV, CONS, UT_Sequence, ptr - p); - return ptr - p; -} - -unsigned -der_put_as_req (unsigned char *ptr, As_Req *a) -{ - unsigned char *p = ptr; - - p -= der_put_kdc_req (p, a->msg_type, a); - p -= der_put_type (p, APPL, CONS, a->msg_type, ptr - p); - return ptr - p; -} - -#if 0 - -/* - * Get functions - */ - -int -der_get_principalname (unsigned char *ptr, Principalname *name) -{ - unsigned char *p = ptr; - unsigned char *p0; - int tlen, tlen2; - - len = der_match_type (p, UNIV, CONS, UT_Sequence, &tlen); - if (len < 0) - return len; - else - p += len; - p0 = p; - len = der_match_context (p, 0, UT_Integer, &name->name_type); - if (len < 0) - return len; - else - p += len; - len = der_match_type (p, CONTEXT, CONS, 1, &tlen2); - if (len < 0) - return len; - else - p =+ len; - len = der_match_type () - while(p < p0 + tlen) { - } - - - return ptr - p; -} - -int -der_get_kdc_rep (unsigned char *ptr, unsigned mylen, int msg_type, - krb5_kdc_rep *k) -{ - unsigned char *p = ptr; - unsigned tlen, slen; - int len; - unsigned kvno, msg1; - unsigned tag; - int type; - - len = der_match_type (p, UNIV, CONS, UT_Sequence, &tlen); - if (len < 0) - return len; - else - p += len; - len = der_match_context (p, 0, UT_Integer, &kvno); - if (len < 0) - return len; - else - p += len; - if (kvno != 5) - return -1; - len = der_match_context (p, 1, UT_Integer, &msg1); - if (len < 0) - return len; - else - p += len; - if (msg1 != msg_type) - return -1; - len = der_get_context (p, &tag, &type, &tlen); - if (len < 0) - return len; - else - p += len; - if (tag == 2) - abort (); /* XXX */ - else if (tag == 3) { - p += der_get_val (p, UT_GeneralString, tlen, &k->realm); - } - len = der_get_context (p, &tag, &type, &tlen); - if (len < 0) - return len; - else - p += len; - der_get_principalname - return p - ptr; -} - -int -der_get_as_rep (unsigned char *ptr, As_Rep *a) -{ - unsigned char *p = ptr; - int len; - unsigned tlen; - - len = der_match_type (p, APPL, CONS, KRB_AS_REP, &tlen); - if(len < 0) - return len; - else - p += len; - len = der_get_kdc_rep (p, tlen, KRB_AS_REP, a); - if (len < 0) - return len; - else - p += len; - - return p - ptr; -} - -#endif -