Add the "-t option to krb5_encode_test, which causes it to use the
authorTheodore Tso <tytso@mit.edu>
Wed, 2 Nov 1994 02:01:14 +0000 (02:01 +0000)
committerTheodore Tso <tytso@mit.edu>
Wed, 2 Nov 1994 02:01:14 +0000 (02:01 +0000)
ASN.1 unparser found in trval.c.  This routine will attempt to decode
the ASN.1 data stream and display it in a logical format for a human
being to decipher.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4611 dc483132-0cff-0310-8789-dd5450dbe970

src/tests/asn.1/ChangeLog
src/tests/asn.1/Makefile.in
src/tests/asn.1/krb5_encode_test.c
src/tests/asn.1/trval.c [new file with mode: 0644]
src/tests/asn.1/trval_reference.out [new file with mode: 0644]

index 38075026b49051d4808ada1b976edfc2a8f9b002..1a71a621d6446d28a7960d6562dd2d05dcaf6e41 100644 (file)
@@ -1,3 +1,12 @@
+Tue Nov  1 20:25:02 1994  Theodore Y. Ts'o  (tytso@dcl)
+
+       * krb5_encode_test.c: 
+       * Makefile.in: 
+       * trval.c: Add the "-t option to krb5_encode_test, which causes it
+               to use the ASN.1 unparser found in trval.c.  This routine
+               will attempt to decode the ASN.1 data stream and display
+               it in a logical format for a human being to decipher.
+
 Wed Oct 19 00:11:43 1994  Theodore Y. Ts'o  (tytso@maytag)
 
        * debug.h (assert):
index e76e6767415a35cdbb4beb14fe4d3035e7e4e942..aef40890bc232b3d8d82afbb85d74ee35d078c83 100644 (file)
@@ -12,7 +12,7 @@ DEPKLIB = $(TOPLIBD)/libkrb5.a $(TOPLIBD)/libcrypto.a $(COMERRLIB) $(DBMLIB)
 
 LOCALINCLUDES = -I$(srcdir)/../../lib/krb5/asn.1
 
-ENCOBJS = krb5_encode_test.o ktest.o ktest_equal.o utility.o 
+ENCOBJS = krb5_encode_test.o ktest.o ktest_equal.o utility.o trval.o
 
 krb5_encode_test: $(ENCOBJS) $(DEPKLIB) 
        $(CC) $(CFLAGS) -o krb5_encode_test $(ENCOBJS) $(LIBS) $(KLIB)
@@ -27,6 +27,8 @@ check:: krb5_decode_test krb5_encode_test
        $(RM) test.out
        ./krb5_encode_test > test.out
        cmp test.out $(srcdir)/reference_encode.out
+       ./krb5_encode_test -t > test.out
+       cmp test.out $(srcdir)/trval_reference.out
        $(RM) test.out  
 
 install::
index ad9928221a4b63e1af3e93f70ac45135e346be3c..1dc9bea3c020631429025222d65100d6464f1e77 100644 (file)
 #include "debug.h"
 
 int error_count = 0;
+int do_trval = 0;
 
-void main()
+void encoder_print_results(code, typestring, description)
+       krb5_data *code;
+       char    *typestring;
+       char    *description;
+{
+       char    *code_string = NULL;
+       krb5_error_code retval;
+       int r, rlen;
+
+       if (do_trval) {
+               printf("encode_krb5_%s%s:\n", typestring, description);
+               r = trval2(stdout, code->data, code->length, 0, &rlen);
+               printf("\n\n");
+               if (rlen != code->length) {
+                       printf("Error: length mismatch: was %d, parsed %d\n",
+                              code->length, rlen);
+                       exit(1);
+               }
+               if (r != 0)
+                       exit(1);
+       } else {
+               retval = asn1_krb5_data_unparse(code,&(code_string));
+               if(retval) {
+                       com_err("krb5_encode_test", retval ,
+                               "while unparsing %s", typestring);
+                       exit(1);
+               }
+               printf("encode_krb5_%s%s: %s\n", typestring, description,
+                      code_string);
+               free(code_string);
+       }
+       ktest_destroy_data(&code);
+}      
+
+void PRS(argc, argv)
+       int     argc;
+       char    **argv;
+{
+       extern char *optarg;    
+       int optchar;
+       extern int print_types, print_krb5_types, print_id_and_len,
+               print_constructed_length, print_skip_context,
+               print_skip_tagnum, print_context_shortcut;
+
+       while ((optchar = getopt(argc, argv, "t")) != EOF) {
+               switch(optchar) {
+               case 't':
+                       do_trval = 1;
+                       break;
+               case '?':
+               default:
+                       fprintf(stderr, "Usage: %s [-t]\n", argv[0]);
+                       exit(1);
+               }
+       }
+       print_types = 1;
+       print_krb5_types = 1;
+       print_id_and_len = 0;
+       print_constructed_length = 0;
+       print_skip_context = 1;
+       print_skip_tagnum = 1;
+       print_context_shortcut = 1;
+}
+
+void main(argc, argv)
+       int     argc;
+       char    **argv;
 {
   krb5_data *code;
-  char *code_string=NULL;
   krb5_error_code retval;
+
+  PRS(argc, argv);
   
   krb5_init_ets();
   
@@ -32,14 +100,7 @@ void main()
     com_err("krb5_encode_test", retval,"while encoding %s", typestring);\
     exit(1);\
   }\
-  retval = asn1_krb5_data_unparse(code,&(code_string));\
-  if(retval){\
-    com_err("krb5_encode_test", retval ,"while unparsing %s", typestring);\
-    exit(1);\
-  }\
-  ktest_destroy_data(&code);\
-  printf("encode_krb5_%s%s: %s\n",typestring,description,code_string);
-      
+  encoder_print_results(code, typestring, description);
       
   /****************************************************************/
   /* encode_krb5_authenticator */
@@ -354,10 +415,7 @@ void main()
 
     retval = encode_krb5_authdata((const krb5_authdata**)ad,&(code));
     if(retval) com_err("encoding authorization_data",retval,"");
-    retval = asn1_krb5_data_unparse(code,&(code_string));
-    if(retval) com_err("unparsing authorization_data",retval,"");
-    ktest_destroy_data(&code);
-    printf("encode_krb5_authorization_data: %s\n",code_string);
+    encoder_print_results(code, "authorization_data", "");
   }
   
   /****************************************************************/
diff --git a/src/tests/asn.1/trval.c b/src/tests/asn.1/trval.c
new file mode 100644 (file)
index 0000000..aa24fd0
--- /dev/null
@@ -0,0 +1,430 @@
+/*
+ * Copyright (C) 1992,1993 Trusted Information Systems, Inc.
+ *
+ * Permission to include this software in the Kerberos V5 distribution
+ * was graciously provided by Trusted Information Systems.
+ * 
+ * Trusted Information Systems makes no representation about the
+ * suitability of this software for any purpose.  It is provided
+ * "as is" without express or implied warranty.
+ * 
+ * Copyright (C) 1994 Massachusetts Institute of Technology
+ * 
+ * Export of this software from the United States of America may
+ *   require a specific license from the United States Government.
+ *   It is the responsibility of any person or organization contemplating
+ *   export to obtain such a license before exporting.
+ *
+ * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ * distribute this software and its documentation for any purpose and
+ * without fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright notice and
+ * this permission notice appear in supporting documentation, and that
+ * the name of M.I.T. not be used in advertising or publicity pertaining
+ * to distribution of the software without specific, written prior
+ * permission.  M.I.T. makes no representations about the suitability of
+ * this software for any purpose.  It is provided "as is" without express
+ * or implied warranty.
+ * 
+ */
+
+/*****************************************************************************
+ * trval.c.c
+ *****************************************************************************/
+
+#include <stdio.h>
+#include <ctype.h>
+
+extern char *malloc(), *realloc();
+
+#define OK 0
+#define NOTOK (-1)
+       
+       /* IDENTIFIER OCTET = TAG CLASS | FORM OF ENCODING | TAG NUMBER */
+       
+       /* TAG CLASSES */
+#define ID_CLASS   0xc0                /* bits 8 and 7 */
+#define CLASS_UNIV 0x00                /* 0 = universal */
+#define CLASS_APPL 0x40                /* 1 = application */
+#define CLASS_CONT 0x80                /* 2 = context-specific */
+#define CLASS_PRIV 0xc0                /* 3 = private */
+       
+       /* FORM OF ENCODING */
+#define ID_FORM   0x20         /* bit 6 */
+#define FORM_PRIM 0x00         /* 0 = primitive */
+#define FORM_CONS 0x20         /* 1 = constructed */
+       
+       /* TAG NUMBERS */
+#define ID_TAG    0x1f         /* bits 5-1 */
+#define PRIM_BOOL 0x01         /* Boolean */
+#define PRIM_INT  0x02         /* Integer */
+#define PRIM_BITS 0x03         /* Bit String */
+#define PRIM_OCTS 0x04         /* Octet String */
+#define PRIM_NULL 0x05         /* Null */
+#define PRIM_OID  0x06         /* Object Identifier */
+#define PRIM_ODE  0x07         /* Object Descriptor */
+#define CONS_EXTN 0x08         /* External */
+#define PRIM_REAL 0x09         /* Real */
+#define PRIM_ENUM 0x0a         /* Enumerated type */
+#define PRIM_ENCR 0x0b         /* Encrypted */
+#define CONS_SEQ  0x10         /* SEQUENCE/SEQUENCE OF */
+#define CONS_SET  0x11         /* SET/SET OF */
+#define DEFN_NUMS 0x12         /* Numeric String */
+#define DEFN_PRTS 0x13         /* Printable String */
+#define DEFN_T61S 0x14         /* T.61 String */
+#define DEFN_VTXS 0x15         /* Videotex String */
+#define DEFN_IA5S 0x16         /* IA5 String */
+#define DEFN_UTCT 0x17         /* UTCTime */
+#define DEFN_GENT 0x18         /* Generalized Time */
+#define DEFN_GFXS 0x19         /* Graphics string (ISO2375) */
+#define DEFN_VISS 0x1a         /* Visible string */
+#define DEFN_GENS 0x1b         /* General string */
+#define DEFN_CHRS 0x1c         /* Character string */
+       
+#define        LEN_XTND        0x80    /* long or indefinite form */
+#define        LEN_SMAX        127     /* largest short form */
+#define        LEN_MASK        0x7f    /* mask to get number of bytes in length */
+#define        LEN_INDF        (-1)    /* indefinite length */
+
+#define KRB5   /* Do krb5 application types */
+       
+int print_types = 0;
+int print_id_and_len = 1;
+int print_constructed_length = 1;      
+int print_primitive_length = 1;
+int print_skip_context = 0;
+int print_skip_tagnum = 0;
+int print_context_shortcut = 0;
+#ifdef KRB5
+int print_krb5_types = 0;
+#endif
+
+
+/****************************************************************************/
+
+#ifdef STANDALONE
+
+int main(argc, argv)
+       int argc;
+       char **argv;
+{
+       int optflg = 1;
+       int options = 0;
+       FILE *fp;
+       int r;
+       
+       while (--argc > 0) {
+               argv++;
+               if (optflg && *(argv)[0] == '-') {
+                       if (!strcmp(*argv,"-types"))
+                               print_types = 1;
+                       else if (!strcmp(*argv,"-notypes"))
+                               print_types = 0;
+                       else {
+                               fprintf(stderr,"trval: unknown option: %s\n", *argv);
+                               exit(1);
+                       }
+               } else {
+                       optflg = 0;
+                       if ((fp = fopen(*argv,"r")) == NULL) {
+                               fprintf(stderr,"trval: unable to open %s\n", *argv);
+                               continue;
+                       }
+                       r = trval(fp, stdout);
+                       close(fp);
+               }
+       }
+       if (optflg) r = trval(stdin, stdout);
+       
+       exit(r);
+}
+#endif
+
+int trval(fin, fout)
+       FILE    *fin;
+       FILE    *fout;
+{
+       unsigned char *p;
+       int maxlen;
+       int len;
+       int cc;
+       int r;
+       int rlen;
+       
+       maxlen = BUFSIZ;
+       p = (unsigned char *)malloc(maxlen);
+       len = 0;
+       while ((cc = fgetc(fin)) != EOF) {
+               if (len == maxlen) {
+                       maxlen += BUFSIZ;
+                       p = (unsigned char *)realloc(p, maxlen);
+               }
+               p[len++] = cc;
+       }
+       fprintf(fout, "<%d>", len);
+       r = trval2(fout, p, len, 0, &rlen);
+       fprintf(fout, "\n");
+       (void) free(p);
+       return(r);
+}
+
+int trval2(fp, enc, len, lev, rlen)
+       FILE *fp;
+       unsigned char *enc;
+       int len;
+       int lev;
+       int *rlen;
+{
+       int l, eid, elen, xlen, r, rlen2;
+       int rlen_ext = 0;
+       
+       if (len < 2) {
+               fprintf(fp, "missing id and length octets (%d)\n", len);
+               return(NOTOK);
+       }
+       
+       fprintf(fp, "\n");
+       for (l=0; l<lev; l++) fprintf(fp, ".  ");
+       
+context_restart:
+       eid = enc[0];
+       elen = enc[1];
+
+       if (print_id_and_len) {
+               fprintf(fp, "%02x ", eid);
+               fprintf(fp, "%02x ", elen);
+       }
+       
+       if (elen == LEN_XTND) {
+               fprintf(fp,
+                       "indefinite length encoding not implemented (0x%02x)\n", elen);
+               return(NOTOK);
+       }
+       
+       xlen = 0;
+       if (elen & LEN_XTND) {
+               xlen = elen & LEN_MASK;
+               if (xlen > len - 2) {
+                       fprintf(fp, "extended length too long (%d > %d - 2)\n", xlen, len);
+                       return(NOTOK);
+               }
+               elen = decode_len(fp, enc+2, xlen);
+       }
+       
+       if (elen > len - 2 - xlen) {
+               fprintf(fp, "length too long (%d > %d - 2 - %d)\n", elen, len, xlen);
+               return(NOTOK);
+       }
+       
+       print_tag_type(fp, eid, lev);
+
+       if (print_context_shortcut &&
+           ((eid & ID_CLASS) == CLASS_CONT) && (lev > 0)) {
+               rlen_ext += 2 + xlen;
+               enc += 2 + xlen;
+               goto context_restart;
+       }
+
+       switch(eid & ID_FORM) {
+       case FORM_PRIM:
+               if (print_primitive_length)
+                       fprintf(fp, "<%d>", elen);
+               r = do_prim(fp, eid & ID_TAG, enc+2+xlen, elen, lev+1);
+               *rlen = 2 + xlen + elen + rlen_ext;
+               break;
+       case FORM_CONS:
+               if (print_constructed_length) {
+                       fprintf(fp, "constr ");
+                       fprintf(fp, "<%d>", elen);
+               }
+               r = do_cons(fp, enc+2+xlen, elen, lev+1, &rlen2);
+               *rlen = 2 + xlen + rlen2 + rlen_ext;
+               break;
+       }
+       
+       return(r);
+}
+
+int decode_len(fp, enc, len)
+       FILE *fp;
+       unsigned char *enc;
+       int len;
+{
+       int rlen;
+       int i;
+       
+       if (print_id_and_len)
+               fprintf(fp, "%02x ", enc[0]);
+       rlen = enc[0];
+       for (i=1; i<len; i++) {
+               if (print_id_and_len)
+                       fprintf(fp, "%02x ", enc[i]);
+               rlen = (rlen * 0x100) + enc[i];
+       }
+       return(rlen);
+}
+
+#define WIDTH 8
+
+int do_prim(fp, tag, enc, len, lev)
+       FILE *fp;
+       int tag;
+       unsigned char *enc;
+       int len;
+       int lev;
+{
+       int n;
+       int i;
+       int j;
+       
+       for (n = 0; n < len; n++) {
+               if ((n % WIDTH) == 0) {
+                       fprintf(fp, "\n");
+           for (i=0; i<lev; i++) fprintf(fp, "   ");
+       }
+       fprintf(fp, "%02x ", enc[n]);
+       if ((n % WIDTH) == (WIDTH-1)) {
+           fprintf(fp, "    ");
+           for (i=n-(WIDTH-1); i<=n; i++)
+               if (isprint(enc[i])) fprintf(fp, "%c", enc[i]);
+               else fprintf(fp, ".");
+       }
+    }
+    if ((j = (n % WIDTH)) != 0) {
+       fprintf(fp, "    ", j);
+       for (i=0; i<WIDTH-j; i++) fprintf(fp, "   ");
+       for (i=n-j; i<n; i++)
+           if (isprint(enc[i])) fprintf(fp, "%c", enc[i]);
+           else fprintf(fp, ".");
+    }
+    return(OK);
+}
+
+int do_cons(fp, enc, len, lev, rlen)
+FILE *fp;
+unsigned char *enc;
+int len;
+int lev;
+int *rlen;
+{
+    int n;
+    int r;
+    int rlen2;
+    int rlent;
+    int l;
+
+    for (n = 0, rlent = 0; n < len; n+=rlen2, rlent+=rlen2) {
+       r = trval2(fp, enc+n, len-n, lev, &rlen2);
+       if (r != OK) return(r);
+    }
+    if (rlent != len) {
+       fprintf(fp, "inconsistent constructed lengths (%d != %d)\n",
+       rlent, len);
+       return(NOTOK);
+    }
+    *rlen = rlent;
+    return(r);
+}
+
+print_tag_type(fp, eid, lev)
+       FILE *fp;
+       int     eid;
+       int     lev;
+{
+       int     tag = eid & ID_TAG;
+       int     do_space = 1;
+
+       fprintf(fp, "[");
+       
+       switch(eid & ID_CLASS) {
+       case CLASS_UNIV:
+               if (print_types && print_skip_tagnum)
+                       do_space = 0;
+               else
+                       fprintf(fp, "UNIV %d", tag);
+               break;
+       case CLASS_APPL:
+#ifdef KRB5
+               if (print_krb5_types && print_skip_tagnum)
+                       do_space = 0;
+               else
+#endif
+                       fprintf(fp, "APPL %d", tag);
+               break;
+       case CLASS_CONT:
+               if (print_skip_context && lev)
+                       fprintf(fp, "%d", tag);
+               else
+                       fprintf(fp, "CONT %d", tag);
+               break;
+       case CLASS_PRIV:
+               fprintf(fp, "PRIV %d", tag);
+               break;
+       }
+       
+       if (print_types && ((eid & ID_CLASS) == CLASS_UNIV)) {
+               if (do_space)
+                       fprintf(fp, " ");
+               switch(eid & ID_TAG) {
+               case PRIM_BOOL: fprintf(fp, "Boolean"); break;
+               case PRIM_INT:  fprintf(fp, "Integer"); break;
+               case PRIM_BITS: fprintf(fp, "Bit String"); break;
+               case PRIM_OCTS: fprintf(fp, "Octet String"); break;
+               case PRIM_NULL: fprintf(fp, "Null"); break;
+               case PRIM_OID:  fprintf(fp, "Object Identifier"); break;
+               case PRIM_ODE:  fprintf(fp, "Object Descriptor"); break;
+               case CONS_EXTN: fprintf(fp, "External"); break;
+               case PRIM_REAL: fprintf(fp, "Real"); break;
+               case PRIM_ENUM: fprintf(fp, "Enumerated type"); break;
+               case PRIM_ENCR: fprintf(fp, "Encrypted"); break;
+               case CONS_SEQ:  fprintf(fp, "Sequence/Sequence Of"); break;
+               case CONS_SET:  fprintf(fp, "Set/Set Of"); break;
+               case DEFN_NUMS: fprintf(fp, "Numeric String"); break;
+               case DEFN_PRTS: fprintf(fp, "Printable String"); break;
+               case DEFN_T61S: fprintf(fp, "T.61 String"); break;
+               case DEFN_VTXS: fprintf(fp, "Videotex String"); break;
+               case DEFN_IA5S: fprintf(fp, "IA5 String"); break;
+               case DEFN_UTCT: fprintf(fp, "UTCTime"); break;
+               case DEFN_GENT: fprintf(fp, "Generalized Time"); break;
+               case DEFN_GFXS: fprintf(fp, "Graphics string (ISO2375)"); break;
+               case DEFN_VISS: fprintf(fp, "Visible string"); break;
+               case DEFN_GENS: fprintf(fp, "General string"); break;
+               case DEFN_CHRS: fprintf(fp, "Character string"); break;
+               default: fprintf(fp, "UNIV %d???", eid);
+               }
+       }
+       
+#ifdef KRB5
+       if (print_krb5_types && ((eid & ID_CLASS) == CLASS_APPL)) {
+               if (do_space)
+                       fprintf(fp, " ");
+               switch(eid & ID_TAG) {
+               case 1: fprintf(fp, "Krb5 Ticket"); break;
+               case 2: fprintf(fp, "Krb5 Autenticator"); break;
+               case 3: fprintf(fp, "Krb5 Encrypted ticket part"); break;
+               case 10: fprintf(fp, "Krb5 AS-REQ packet"); break;
+               case 11: fprintf(fp, "Krb5 AS-REP packet"); break;
+               case 12: fprintf(fp, "Krb5 TGS-REQ packet"); break;
+               case 13: fprintf(fp, "Krb5 TGS-REP packet"); break;
+               case 14: fprintf(fp, "Krb5 AP-REQ packet"); break;
+               case 15: fprintf(fp, "Krb5 AP-REP packet"); break;
+               case 20: fprintf(fp, "Krb5 SAFE packet"); break;
+               case 21: fprintf(fp, "Krb5 PRIV packet"); break;
+               case 22: fprintf(fp, "Krb5 CRED packet"); break;
+               case 30: fprintf(fp, "Krb5 ERROR packet"); break;
+               case 25: fprintf(fp, "Krb5 Encrypted AS-REQ part"); break;
+               case 26: fprintf(fp, "Krb5 Encrypted TGS-REQ part"); break;
+               case 27: fprintf(fp, "Krb5 Encrypted AP-REP part"); break;
+               case 28: fprintf(fp, "Krb5 Encrypted PRIV part"); break;
+               case 29: fprintf(fp, "Krb5 Encrypted CRED part"); break;
+               default: fprintf(fp, "APPL %d???", eid);
+               }
+       }
+#endif
+
+       fprintf(fp, "] ");
+       
+}      
+
+/*****************************************************************************/
+
diff --git a/src/tests/asn.1/trval_reference.out b/src/tests/asn.1/trval_reference.out
new file mode 100644 (file)
index 0000000..8fd6570
--- /dev/null
@@ -0,0 +1,1821 @@
+encode_krb5_authenticator:
+
+[Krb5 Autenticator] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <4>
+            31 32 33 34                 1234
+.  .  [4] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [6] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [7] [Integer] <1>
+         11                          .
+.  .  [8] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Octet String] <6>
+               66 6f 6f 62 61 72           foobar
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Octet String] <6>
+               66 6f 6f 62 61 72           foobar
+
+encode_krb5_authenticator(optionals empty):
+
+[Krb5 Autenticator] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [4] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+
+encode_krb5_authenticator(optionals NULL):
+
+[Krb5 Autenticator] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [4] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+
+encode_krb5_ticket:
+
+[Krb5 Ticket] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_keyblock:
+
+[Sequence/Sequence Of] 
+.  [0] [Integer] <1>
+      01                          .
+.  [1] [Octet String] <8>
+      31 32 33 34 35 36 37 38     12345678
+
+encode_krb5_enc_tkt_part:
+
+[Krb5 Encrypted ticket part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Bit String] <5>
+         00 fe dc ba 98              .....
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [2] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <35>
+            45 44 55 2c 4d 49 54 2e     EDU,MIT.
+            2c 41 54 48 45 4e 41 2e     ,ATHENA.
+            2c 57 41 53 48 49 4e 47     ,WASHING
+            54 4f 4e 2e 45 44 55 2c     TON.EDU,
+            43 53 2e                    CS.
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [6] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [7] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [8] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [9] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  [10] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Octet String] <6>
+               66 6f 6f 62 61 72           foobar
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Octet String] <6>
+               66 6f 6f 62 61 72           foobar
+
+encode_krb5_enc_tkt_part(optionals NULL):
+
+[Krb5 Encrypted ticket part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Bit String] <5>
+         00 fe dc ba 98              .....
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [2] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <35>
+            45 44 55 2c 4d 49 54 2e     EDU,MIT.
+            2c 41 54 48 45 4e 41 2e     ,ATHENA.
+            2c 57 41 53 48 49 4e 47     ,WASHING
+            54 4f 4e 2e 45 44 55 2c     TON.EDU,
+            43 53 2e                    CS.
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [7] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+
+encode_krb5_enc_kdc_rep_part:
+
+[Krb5 Encrypted TGS-REQ part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <2>
+               00 fb                       ..
+.  .  .  .  [1] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <2>
+               00 fb                       ..
+.  .  .  .  [1] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  [2] [Integer] <1>
+         2a                          *
+.  .  [3] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [4] [Bit String] <5>
+         00 fe dc ba 98              .....
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [6] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [7] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [8] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [9] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [10] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [11] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+
+encode_krb5_enc_kdc_rep_part(optionals NULL):
+
+[Krb5 Encrypted TGS-REQ part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <2>
+               00 fb                       ..
+.  .  .  .  [1] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <2>
+               00 fb                       ..
+.  .  .  .  [1] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  [2] [Integer] <1>
+         2a                          *
+.  .  [4] [Bit String] <5>
+         00 fe 5c ba 98              ..\..
+.  .  [5] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [7] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [9] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [10] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+
+encode_krb5_as_rep:
+
+[Krb5 AS-REP packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0b                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  [3] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [5] [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [6] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_as_rep(optionals NULL):
+
+[Krb5 AS-REP packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0b                          .
+.  .  [3] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [5] [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [6] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_tgs_rep:
+
+[Krb5 TGS-REP packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0d                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  [3] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [5] [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [6] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_tgs_rep(optionals NULL):
+
+[Krb5 TGS-REP packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0d                          .
+.  .  [3] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [5] [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [6] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_ap_req:
+
+[Krb5 AP-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0e                          .
+.  .  [2] [Bit String] <5>
+         00 fe dc ba 98              .....
+.  .  [3] [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_ap_rep:
+
+[Krb5 AP-REP packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         0f                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_ap_rep_enc_part:
+
+[Krb5 Encrypted AP-REP part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [1] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <8>
+            31 32 33 34 35 36 37 38     12345678
+.  .  [3] [Integer] <1>
+         11                          .
+
+encode_krb5_ap_rep_enc_part(optionals NULL):
+
+[Krb5 Encrypted AP-REP part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [1] [Integer] <3>
+         01 e2 40                    ..@
+
+encode_krb5_as_req:
+
+[Krb5 AS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0a                          .
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 90              .....
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [4] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [6] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+.  .  .  [9] [Sequence/Sequence Of] 
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  02                          .
+.  .  .  .  .  [1] [Octet String] <4>
+                  12 d0 00 23                 ...#
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  02                          .
+.  .  .  .  .  [1] [Octet String] <4>
+                  12 d0 00 23                 ...#
+.  .  .  [10] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               00                          .
+.  .  .  .  [1] [Integer] <1>
+               05                          .
+.  .  .  .  [2] [Octet String] <21>
+               6b 72 62 41 53 4e 2e 31     krbASN.1
+               20 74 65 73 74 20 6d 65      test me
+               73 73 61 67 65              ssage
+.  .  .  [11] [Sequence/Sequence Of] 
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+
+encode_krb5_as_req(optionals NULL except second_ticket):
+
+[Krb5 AS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0a                          .
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 98              .....
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+.  .  .  [11] [Sequence/Sequence Of] 
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+
+encode_krb5_as_req(optionals NULL except server):
+
+[Krb5 AS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0a                          .
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 90              .....
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+
+encode_krb5_tgs_req:
+
+[Krb5 TGS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0c                          .
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [1] [Integer] <1>
+               0d                          .
+.  .  .  .  [2] [Octet String] <7>
+               70 61 2d 64 61 74 61        pa-data
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 90              .....
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [4] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [6] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+.  .  .  [9] [Sequence/Sequence Of] 
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  02                          .
+.  .  .  .  .  [1] [Octet String] <4>
+                  12 d0 00 23                 ...#
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  02                          .
+.  .  .  .  .  [1] [Octet String] <4>
+                  12 d0 00 23                 ...#
+.  .  .  [10] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               00                          .
+.  .  .  .  [1] [Integer] <1>
+               05                          .
+.  .  .  .  [2] [Octet String] <21>
+               6b 72 62 41 53 4e 2e 31     krbASN.1
+               20 74 65 73 74 20 6d 65      test me
+               73 73 61 67 65              ssage
+.  .  .  [11] [Sequence/Sequence Of] 
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+
+encode_krb5_tgs_req(optionals NULL except second_ticket):
+
+[Krb5 TGS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0c                          .
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 98              .....
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+.  .  .  [11] [Sequence/Sequence Of] 
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+.  .  .  .  [Krb5 Ticket] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [1] [General string] <14>
+                     41 54 48 45 4e 41 2e 4d     ATHENA.M
+                     49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        01                          .
+.  .  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  .  [General string] <6>
+                           68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  .  [General string] <5>
+                           65 78 74 72 61              extra
+.  .  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [0] [Integer] <1>
+                        00                          .
+.  .  .  .  .  .  .  [1] [Integer] <1>
+                        05                          .
+.  .  .  .  .  .  .  [2] [Octet String] <21>
+                        6b 72 62 41 53 4e 2e 31     krbASN.1
+                        20 74 65 73 74 20 6d 65      test me
+                        73 73 61 67 65              ssage
+
+encode_krb5_tgs_req(optionals NULL except server):
+
+[Krb5 TGS-REQ packet] 
+.  [Sequence/Sequence Of] 
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Integer] <1>
+         0c                          .
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Bit String] <5>
+            00 fe dc ba 90              .....
+.  .  .  [2] [General string] <14>
+            41 54 48 45 4e 41 2e 4d     ATHENA.M
+            49 54 2e 45 44 55           IT.EDU
+.  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               01                          .
+.  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  [General string] <6>
+                  68 66 74 73 61 69           hftsai
+.  .  .  .  .  [General string] <5>
+                  65 78 74 72 61              extra
+.  .  .  [5] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [7] [Integer] <1>
+            2a                          *
+.  .  .  [8] [Sequence/Sequence Of] 
+.  .  .  .  [Integer] <1>
+               00                          .
+.  .  .  .  [Integer] <1>
+               01                          .
+
+encode_krb5_kdc_req_body:
+
+[Sequence/Sequence Of] 
+.  [0] [Bit String] <5>
+      00 fe dc ba 90              .....
+.  [1] [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         01                          .
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [General string] <6>
+            68 66 74 73 61 69           hftsai
+.  .  .  [General string] <5>
+            65 78 74 72 61              extra
+.  [2] [General string] <14>
+      41 54 48 45 4e 41 2e 4d     ATHENA.M
+      49 54 2e 45 44 55           IT.EDU
+.  [3] [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         01                          .
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [General string] <6>
+            68 66 74 73 61 69           hftsai
+.  .  .  [General string] <5>
+            65 78 74 72 61              extra
+.  [4] [Generalized Time] <15>
+      31 39 39 34 30 36 31 30     19940610
+      30 36 30 33 31 37 5a        060317Z
+.  [5] [Generalized Time] <15>
+      31 39 39 34 30 36 31 30     19940610
+      30 36 30 33 31 37 5a        060317Z
+.  [6] [Generalized Time] <15>
+      31 39 39 34 30 36 31 30     19940610
+      30 36 30 33 31 37 5a        060317Z
+.  [7] [Integer] <1>
+      2a                          *
+.  [8] [Sequence/Sequence Of] 
+.  .  [Integer] <1>
+         00                          .
+.  .  [Integer] <1>
+         01                          .
+.  [9] [Sequence/Sequence Of] 
+.  .  [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+.  .  [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+.  [10] [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         00                          .
+.  .  [1] [Integer] <1>
+         05                          .
+.  .  [2] [Octet String] <21>
+         6b 72 62 41 53 4e 2e 31     krbASN.1
+         20 74 65 73 74 20 6d 65      test me
+         73 73 61 67 65              ssage
+.  [11] [Sequence/Sequence Of] 
+.  .  [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+
+encode_krb5_kdc_req_body(optionals NULL except second_ticket):
+
+[Sequence/Sequence Of] 
+.  [0] [Bit String] <5>
+      00 fe dc ba 98              .....
+.  [2] [General string] <14>
+      41 54 48 45 4e 41 2e 4d     ATHENA.M
+      49 54 2e 45 44 55           IT.EDU
+.  [5] [Generalized Time] <15>
+      31 39 39 34 30 36 31 30     19940610
+      30 36 30 33 31 37 5a        060317Z
+.  [7] [Integer] <1>
+      2a                          *
+.  [8] [Sequence/Sequence Of] 
+.  .  [Integer] <1>
+         00                          .
+.  .  [Integer] <1>
+         01                          .
+.  [11] [Sequence/Sequence Of] 
+.  .  [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+.  .  [Krb5 Ticket] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               05                          .
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  00                          .
+.  .  .  .  .  [1] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [2] [Octet String] <21>
+                  6b 72 62 41 53 4e 2e 31     krbASN.1
+                  20 74 65 73 74 20 6d 65      test me
+                  73 73 61 67 65              ssage
+
+encode_krb5_kdc_req_body(optionals NULL except server):
+
+[Sequence/Sequence Of] 
+.  [0] [Bit String] <5>
+      00 fe dc ba 90              .....
+.  [2] [General string] <14>
+      41 54 48 45 4e 41 2e 4d     ATHENA.M
+      49 54 2e 45 44 55           IT.EDU
+.  [3] [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         01                          .
+.  .  [1] [Sequence/Sequence Of] 
+.  .  .  [General string] <6>
+            68 66 74 73 61 69           hftsai
+.  .  .  [General string] <5>
+            65 78 74 72 61              extra
+.  [5] [Generalized Time] <15>
+      31 39 39 34 30 36 31 30     19940610
+      30 36 30 33 31 37 5a        060317Z
+.  [7] [Integer] <1>
+      2a                          *
+.  [8] [Sequence/Sequence Of] 
+.  .  [Integer] <1>
+         00                          .
+.  .  [Integer] <1>
+         01                          .
+
+encode_krb5_safe:
+
+[Krb5 SAFE packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         14                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+.  .  .  [1] [Generalized Time] <15>
+            31 39 39 34 30 36 31 30     19940610
+            30 36 30 33 31 37 5a        060317Z
+.  .  .  [2] [Integer] <3>
+            01 e2 40                    ..@
+.  .  .  [3] [Integer] <1>
+            11                          .
+.  .  .  [4] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  .  [5] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <4>
+            31 32 33 34                 1234
+
+encode_krb5_safe(optionals NULL):
+
+[Krb5 SAFE packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         14                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [0] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+.  .  .  [4] [Sequence/Sequence Of] 
+.  .  .  .  [0] [Integer] <1>
+               02                          .
+.  .  .  .  [1] [Octet String] <4>
+               12 d0 00 23                 ...#
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Octet String] <4>
+            31 32 33 34                 1234
+
+encode_krb5_priv:
+
+[Krb5 PRIV packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         15                          .
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_enc_priv_part:
+
+[Krb5 Encrypted PRIV part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Octet String] <8>
+         6b 72 62 35 64 61 74 61     krb5data
+.  .  [1] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [2] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [3] [Integer] <1>
+         11                          .
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+.  .  [5] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+
+encode_krb5_enc_priv_part(optionals NULL):
+
+[Krb5 Encrypted PRIV part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Octet String] <8>
+         6b 72 62 35 64 61 74 61     krb5data
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+
+encode_krb5_cred:
+
+[Krb5 CRED packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         16                          .
+.  .  [2] [Sequence/Sequence Of] 
+.  .  .  [Krb5 Ticket] 
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [1] [General string] <14>
+                  41 54 48 45 4e 41 2e 4d     ATHENA.M
+                  49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     01                          .
+.  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [General string] <6>
+                        68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  [General string] <5>
+                        65 78 74 72 61              extra
+.  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     00                          .
+.  .  .  .  .  .  [1] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [2] [Octet String] <21>
+                     6b 72 62 41 53 4e 2e 31     krbASN.1
+                     20 74 65 73 74 20 6d 65      test me
+                     73 73 61 67 65              ssage
+.  .  .  [Krb5 Ticket] 
+.  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  05                          .
+.  .  .  .  .  [1] [General string] <14>
+                  41 54 48 45 4e 41 2e 4d     ATHENA.M
+                  49 54 2e 45 44 55           IT.EDU
+.  .  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     01                          .
+.  .  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  .  [General string] <6>
+                        68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  .  [General string] <5>
+                        65 78 74 72 61              extra
+.  .  .  .  .  [3] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     00                          .
+.  .  .  .  .  .  [1] [Integer] <1>
+                     05                          .
+.  .  .  .  .  .  [2] [Octet String] <21>
+                     6b 72 62 41 53 4e 2e 31     krbASN.1
+                     20 74 65 73 74 20 6d 65      test me
+                     73 73 61 67 65              ssage
+.  .  [3] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            00                          .
+.  .  .  [1] [Integer] <1>
+            05                          .
+.  .  .  [2] [Octet String] <21>
+            6b 72 62 41 53 4e 2e 31     krbASN.1
+            20 74 65 73 74 20 6d 65      test me
+            73 73 61 67 65              ssage
+
+encode_krb5_enc_cred_part:
+
+[Krb5 Encrypted CRED part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Octet String] <8>
+                  31 32 33 34 35 36 37 38     12345678
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Bit String] <5>
+               00 fe dc ba 98              .....
+.  .  .  .  [4] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [5] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [6] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [7] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [8] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [9] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [10] [Sequence/Sequence Of] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Octet String] <8>
+                  31 32 33 34 35 36 37 38     12345678
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Bit String] <5>
+               00 fe dc ba 98              .....
+.  .  .  .  [4] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [5] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [6] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [7] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [8] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [9] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [10] [Sequence/Sequence Of] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+.  .  [1] [Integer] <1>
+         2a                          *
+.  .  [2] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [3] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [4] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+.  .  [5] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            02                          .
+.  .  .  [1] [Octet String] <4>
+            12 d0 00 23                 ...#
+
+encode_krb5_enc_cred_part(optionals NULL):
+
+[Krb5 Encrypted CRED part] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Sequence/Sequence Of] 
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Octet String] <8>
+                  31 32 33 34 35 36 37 38     12345678
+.  .  .  [Sequence/Sequence Of] 
+.  .  .  .  [0] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Octet String] <8>
+                  31 32 33 34 35 36 37 38     12345678
+.  .  .  .  [1] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [2] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [3] [Bit String] <5>
+               00 fe dc ba 98              .....
+.  .  .  .  [4] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [5] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [6] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [7] [Generalized Time] <15>
+               31 39 39 34 30 36 31 30     19940610
+               30 36 30 33 31 37 5a        060317Z
+.  .  .  .  [8] [General string] <14>
+               41 54 48 45 4e 41 2e 4d     ATHENA.M
+               49 54 2e 45 44 55           IT.EDU
+.  .  .  .  [9] [Sequence/Sequence Of] 
+.  .  .  .  .  [0] [Integer] <1>
+                  01                          .
+.  .  .  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  .  .  [General string] <6>
+                     68 66 74 73 61 69           hftsai
+.  .  .  .  .  .  [General string] <5>
+                     65 78 74 72 61              extra
+.  .  .  .  [10] [Sequence/Sequence Of] 
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+.  .  .  .  .  [Sequence/Sequence Of] 
+.  .  .  .  .  .  [0] [Integer] <1>
+                     02                          .
+.  .  .  .  .  .  [1] [Octet String] <4>
+                     12 d0 00 23                 ...#
+
+encode_krb5_error:
+
+[Krb5 ERROR packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         1e                          .
+.  .  [2] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [3] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [4] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [5] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [6] [Integer] <1>
+         3c                          <
+.  .  [7] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [8] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [9] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [10] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+.  .  [11] [General string] <8>
+         6b 72 62 35 64 61 74 61     krb5data
+.  .  [12] [Octet String] <8>
+         6b 72 62 35 64 61 74 61     krb5data
+
+encode_krb5_error(optionals NULL):
+
+[Krb5 ERROR packet] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         05                          .
+.  .  [1] [Integer] <1>
+         1e                          .
+.  .  [3] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [4] [Generalized Time] <15>
+         31 39 39 34 30 36 31 30     19940610
+         30 36 30 33 31 37 5a        060317Z
+.  .  [5] [Integer] <3>
+         01 e2 40                    ..@
+.  .  [6] [Integer] <1>
+         3c                          <
+.  .  [9] [General string] <14>
+         41 54 48 45 4e 41 2e 4d     ATHENA.M
+         49 54 2e 45 44 55           IT.EDU
+.  .  [10] [Sequence/Sequence Of] 
+.  .  .  [0] [Integer] <1>
+            01                          .
+.  .  .  [1] [Sequence/Sequence Of] 
+.  .  .  .  [General string] <6>
+               68 66 74 73 61 69           hftsai
+.  .  .  .  [General string] <5>
+               65 78 74 72 61              extra
+
+encode_krb5_authorization_data:
+
+[Sequence/Sequence Of] 
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         01                          .
+.  .  [1] [Octet String] <6>
+         66 6f 6f 62 61 72           foobar
+.  [Sequence/Sequence Of] 
+.  .  [0] [Integer] <1>
+         01                          .
+.  .  [1] [Octet String] <6>
+         66 6f 6f 62 61 72           foobar
+
+encode_krb5_pwd_sequence:
+
+[Sequence/Sequence Of] 
+.  [0] [Octet String] <8>
+      6b 72 62 35 64 61 74 61     krb5data
+.  [1] [Octet String] <8>
+      6b 72 62 35 64 61 74 61     krb5data
+
+encode_krb5_pwd_data:
+
+[Sequence/Sequence Of] 
+.  [0] [Integer] <1>
+      02                          .
+.  [1] [Sequence/Sequence Of] 
+.  .  [Sequence/Sequence Of] 
+.  .  .  [0] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+.  .  .  [1] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+.  .  [Sequence/Sequence Of] 
+.  .  .  [0] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+.  .  .  [1] [Octet String] <8>
+            6b 72 62 35 64 61 74 61     krb5data
+