reduced generated code by 1/5

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1347 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-03-10 00:44:20 +00:00
parent 619ad4a702
commit f27b269815

View File

@@ -214,13 +214,8 @@ encode_type (char *name, Type *t)
"len -= 2;\n" "len -= 2;\n"
"ret += 2;\n" "ret += 2;\n"
"}\n\n" "}\n\n"
"l = der_put_length (p, len, ret);\n" "l = der_put_length_and_tag (p, len, ret, UNIV, PRIM,"
"if(l < 0)\n" "UT_BitString);\n"
" return l;\n"
"p -= l;\n"
"len -= l;\n"
"ret += l;\n\n"
"l = der_put_tag (p, len, UNIV, PRIM, UT_BitString);\n"
"if(l < 0)\n" "if(l < 0)\n"
" return l;\n" " return l;\n"
"p -= l;\n" "p -= l;\n"
@@ -249,13 +244,7 @@ encode_type (char *name, Type *t)
"ret = 0;\n"); "ret = 0;\n");
encode_type (s, m->type); encode_type (s, m->type);
fprintf (codefile, fprintf (codefile,
"l = der_put_length (p, len, ret);\n" "l = der_put_length_and_tag (p, len, ret, CONTEXT, CONS, %d);\n"
"if (l < 0)\n"
"return l;\n"
"p -= l;\n"
"len -= l;\n"
"ret += l;\n\n"
"l = der_put_tag (p, len, CONTEXT, CONS, %d);\n"
"if (l < 0)\n" "if (l < 0)\n"
"return l;\n" "return l;\n"
"p -= l;\n" "p -= l;\n"
@@ -270,13 +259,7 @@ encode_type (char *name, Type *t)
free (s); free (s);
} }
fprintf (codefile, fprintf (codefile,
"l = der_put_length (p, len, ret);\n" "l = der_put_length_and_tag (p, len, ret, UNIV, CONS, UT_Sequence);\n"
"if(l < 0)\n"
" return l;\n"
"p -= l;\n"
"len -= l;\n"
"ret += l;\n\n"
"l = der_put_tag (p, len, UNIV, CONS, UT_Sequence);\n"
"if(l < 0)\n" "if(l < 0)\n"
" return l;\n" " return l;\n"
"p -= l;\n" "p -= l;\n"
@@ -297,13 +280,7 @@ encode_type (char *name, Type *t)
fprintf (codefile, fprintf (codefile,
"ret += oldret;\n" "ret += oldret;\n"
"}\n" "}\n"
"l = der_put_length (p, len, ret);\n" "l = der_put_length_and_tag (p, len, ret, UNIV, CONS, UT_Sequence);\n"
"if(l < 0)\n"
" return l;\n"
"p -= l;\n"
"len -= l;\n"
"ret += l;\n\n"
"l = der_put_tag (p, len, UNIV, CONS, UT_Sequence);\n"
"if(l < 0)\n" "if(l < 0)\n"
" return l;\n" " return l;\n"
"p -= l;\n" "p -= l;\n"
@@ -321,13 +298,7 @@ encode_type (char *name, Type *t)
case TApplication: case TApplication:
encode_type (name, t->subtype); encode_type (name, t->subtype);
fprintf (codefile, fprintf (codefile,
"l = der_put_length (p, len, ret);\n" "l = der_put_length_and_tag (p, len, ret, APPL, CONS, %d);\n"
"if(l < 0)\n"
" return l;\n"
"p -= l;\n"
"len -= l;\n"
"ret += l;\n\n"
"l = der_put_tag (p, len, APPL, CONS, %d);\n"
"if(l < 0)\n" "if(l < 0)\n"
" return l;\n" " return l;\n"
"p -= l;\n" "p -= l;\n"
@@ -402,13 +373,8 @@ decode_type (char *name, Type *t)
int pos; int pos;
fprintf (codefile, fprintf (codefile,
"l = der_match_tag (p, len, UNIV, PRIM, UT_BitString);\n" "l = der_match_tag_and_length (p, len, UNIV, PRIM, UT_BitString,"
"if(l < 0)\n" "&reallen);\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"l = der_get_length (p, len, &reallen);\n"
"if(l < 0)\n" "if(l < 0)\n"
"return l;\n" "return l;\n"
"p += l;\n" "p += l;\n"
@@ -441,13 +407,8 @@ decode_type (char *name, Type *t)
break; break;
fprintf (codefile, fprintf (codefile,
"l = der_match_tag (p, len, UNIV, CONS, UT_Sequence);\n" "l = der_match_tag_and_length (p, len, UNIV, CONS, UT_Sequence,"
"if(l < 0)\n" "&reallen);\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"l = der_get_length (p, len, &reallen);\n"
"if(l < 0)\n" "if(l < 0)\n"
"return l;\n" "return l;\n"
"p += l;\n" "p += l;\n"
@@ -497,17 +458,11 @@ decode_type (char *name, Type *t)
decode_type (s, m->type); decode_type (s, m->type);
fprintf (codefile, fprintf (codefile,
"if(dce_fix){\n" "if(dce_fix){\n"
"l = der_match_tag (p, len, 0, 0, 0);\n" "l = der_match_tag_and_length (p, len, 0, 0, 0, &reallen);\n"
"if(l < 0) return l;\n" "if(l < 0) return l;\n"
"p += l;\n" "p += l;\n"
"len -= l;\n" "len -= l;\n"
"ret += l;\n" "ret += l;\n"
"l = der_get_length(p, len, &reallen);\n"
"if(l < 0)\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"}else \n" "}else \n"
"len = oldlen - newlen;\n" "len = oldlen - newlen;\n"
"}\n" "}\n"
@@ -529,17 +484,11 @@ decode_type (char *name, Type *t)
} }
fprintf(codefile, fprintf(codefile,
"if(dce_fix){\n" "if(dce_fix){\n"
"l = der_match_tag (p, len, 0, 0, 0);\n" "l = der_match_tag_and_length (p, len, 0, 0, 0, &reallen);\n"
"if(l < 0) return l;\n" "if(l < 0) return l;\n"
"p += l;\n" "p += l;\n"
"len -= l;\n" "len -= l;\n"
"ret += l;\n" "ret += l;\n"
"l = der_get_length(p, len, &reallen);\n"
"if(l < 0)\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"}\n" "}\n"
"}\n"); "}\n");
@@ -549,13 +498,8 @@ decode_type (char *name, Type *t)
char *n = malloc(2*strlen(name) + 20); char *n = malloc(2*strlen(name) + 20);
fprintf (codefile, fprintf (codefile,
"l = der_match_tag (p, len, UNIV, CONS, UT_Sequence);\n" "l = der_match_tag_and_length (p, len, UNIV, CONS, UT_Sequence,"
"if(l < 0)\n" "&reallen);\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"l = der_get_length (p, len, &reallen);\n"
"if(l < 0)\n" "if(l < 0)\n"
"return l;\n" "return l;\n"
"p += l;\n" "p += l;\n"
@@ -587,13 +531,7 @@ decode_type (char *name, Type *t)
break; break;
case TApplication: case TApplication:
fprintf (codefile, fprintf (codefile,
"l = der_match_tag (p, len, APPL, CONS, %d);\n" "l = der_match_tag_and_length (p, len, APPL, CONS, %d, &reallen);\n"
"if(l < 0)\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"l = der_get_length(p, len, &reallen);\n"
"if(l < 0)\n" "if(l < 0)\n"
"return l;\n" "return l;\n"
"p += l;\n" "p += l;\n"
@@ -611,17 +549,11 @@ decode_type (char *name, Type *t)
decode_type (name, t->subtype); decode_type (name, t->subtype);
fprintf(codefile, fprintf(codefile,
"if(dce_fix){\n" "if(dce_fix){\n"
"l = der_match_tag (p, len, 0, 0, 0);\n" "l = der_match_tag_and_length (p, len, 0, 0, 0, &reallen);\n"
"if(l < 0) return l;\n" "if(l < 0) return l;\n"
"p += l;\n" "p += l;\n"
"len -= l;\n" "len -= l;\n"
"ret += l;\n" "ret += l;\n"
"l = der_get_length(p, len, &reallen);\n"
"if(l < 0)\n"
"return l;\n"
"p += l;\n"
"len -= l;\n"
"ret += l;\n"
"}\n" "}\n"
"}\n"); "}\n");