diff --git a/.gitattributes b/.gitattributes index 13dd39325a299430fe835d3263895a39afeb2256..d28d7782d810888cb0c04c2b4f362d67aacd2e6a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -70,7 +70,6 @@ testfont binary /lib/modules/Sql.pmod/postgres.pike foreign_ident /lib/modules/Sql.pmod/sql.pike foreign_ident /lib/modules/Sql.pmod/sql_result.pike foreign_ident -/lib/modules/Standards.pmod/ASN1.pmod/decode.pike foreign_ident /lib/modules/Yabu.pmod/module.pmod foreign_ident /lib/modules/error.pmod foreign_ident /man/hilfe.1 foreign_ident diff --git a/lib/modules/Standards.pmod/ASN1.pmod/decode.pike b/lib/modules/Standards.pmod/ASN1.pmod/decode.pike deleted file mode 100644 index e2e30eecefb7210733df4f05ad05167ea20713c4..0000000000000000000000000000000000000000 --- a/lib/modules/Standards.pmod/ASN1.pmod/decode.pike +++ /dev/null @@ -1,117 +0,0 @@ -/* decode.pike - * - * Rudimentary support for decoding ASN.1 encoded data. - * - * $Id: decode.pike,v 1.2 1998/04/20 01:49:39 nisse Exp $ - */ - -/* BER/DER decoder - * - * Values are represented as arrays ({ tag, value }). - * Tag is either an integer tag number, or a string, in case - * the tag recognized. - * - * Values are strings, integers, or arrays */ - -inherit ADT.struct; - -array get_asn1() -{ - int|string tag = get_uint(1); - int len; - string contents; - mixed value; - -#ifdef SSL3_DEBUG - werror(sprintf("decoding tag %x\n", tag)); -#endif - if ( (tag & 0x1f) == 0x1f) - throw( ({ "high tag numbers is not supported\n", backtrace() }) ); - int len = get_uint(1); - if (len & 0x80) - len = get_uint(len & 0x7f); - -#ifdef SSL3_DEBUG - werror(sprintf("len : %d\n", len)); -#endif - contents = get_fix_string(len); -#ifdef SSL3_DEBUG - werror(sprintf("contents: %O\n", contents)); -#endif - value = contents; /* Default is no conversion */ - if (tag & 0x20) - { - object seq = object_program(this_object())(contents); - value = ({ }); - while(! seq->is_empty()) - { - array elem = seq->get_asn1(); -#ifdef SSL3_DEBUG - // werror(sprintf("elem: %O\n", elem)); -#endif - value += ({ elem }); - } - } - switch(tag & 0xdf) - { - case 1: /* Boolean */ - if (strlen(contents) != 1) - throw( ({ "SSL.asn1: Invalid boolean value.\n", backtrace() }) ); - tag = "BOOLEAN"; - value = !!contents[0]; - break; - case 2: /* Integer */ - tag = "INTEGER"; - value = Gmp.mpz(contents, 256); - if (contents[0] & 0x80) /* Negative */ - value -= Gmp.pow(256, strlen(contents)); - break; - case 3: /* Bit string */ - tag = "BIT STRING"; - break; - case 4: /* Octet string */ - tag = "OCTET STRING"; - break; - case 5: /* Null */ - if (strlen(contents)) - throw( ({ "SSL.asn1: Invalid NULL value.\n", backtrace() }) ); - tag = "NULL"; - value = 0; - break; - case 6: /* Object id */ - { - tag = "Identifier"; - if (contents[0] < 120) - value = ({ contents[0] / 40, contents[0] % 40 }); - else - value = ({ 2, contents[0] - 80 }); - int index = 1; - while(index < strlen(contents)) - { - int id = 0; - do - { - id = id << 7 | (contents[index] & 0x7f); - } while(contents[index++] & 0x80); - value += ({ id }); - } - break; - } - case 9: /* Real */ - tag = "REAL"; - break; - case 10: /* Enumerated */ - tag = "ENUMERATED"; - break; - case 16: /* Sequence */ - tag = "SEQUENCE"; - break; - case 17: /* Set */ - tag = "SET"; - break; - default: /* Keep numeric tag */ - break; - } - - return ({ tag, value }); -}