1. C++ / Говнокод #17816

    +144

    1. 1
    2. 2
    info->cipher_oid = oid_to_string(p->header2->header3->header4->header5->cipher_oid);
    info->hash_oid = oid_to_string(p->header2->header3->header4->header5->hash_oid);

    Вчера наговнокодил.

    Запостил: bormand, 18 Марта 2015

    Комментарии (12) RSS

    • Питонично.
      Ответить
    • В iOS разработке такое всплошь и рядом, там JSON парсер строку из одних цифр таки воспринимает как цифру и если нужно символьное представление пишем такой костыль - мол если распарсилась как строка, передаем строку, а если как число, передаем его строковое представление.
      Ответить
      • > JSON парсер
        Ну здесь немного хардкорней - надо было из ASN.1 файлика с недокументированной структурой выдрать несколько полей. Назначение большинства полей и структур я не знал, да и для решаемой задачи они не требуются, поэтому тупо обозвал структуры header1, header2 и т.п., а их поля, помимо трёх нужных - unk1, unk2...

        А перевод oid'а в строку тут из-за того, что cipher_oid в оригинале ASN1_OBJECT *, а мне не хотелось размазывать эту зависимость от OpenSSL'ного парсера по всему коду.
        Ответить
    • не удивительно что в этой OpenSSL дыры находят.
      Ответить
      • Это не само OpenSSL, это мой код.

        Но код там не лучший, да. Особенно документация, которой для некоторых подсистем вообще нет. С тем же ASN.1 парсером пришлось разбираться тупо по исходникам. В следующий раз попробую другие криптолибы.
        Ответить
    • IDA?
      Ответить
      • Неа, структурки писал руками на основе выхлопа openssl asn1parse. http://govnokod.ru/17816#comment267465
        Ответить
        • Код похож на выхлоп IDA. Кеп.
          Ответить
          • >похож на выхлоп IDA
            выхлоп IDA
            выхлопида
            Кто такой выхлопид?
            Ответить
          • > Код похож на выхлоп IDA
            IDA научилась сишный код генерить? Там же вроде только асм был?
            Ответить

    Добавить комментарий