Я попробовал несколько различных guis за gdb и нашел, что DDD лучше их. И в то время как я не могу прокомментировать другой, non-gdb предложения для Linux я использовал много других отладчиков на других платформах.
gdb делает большинство вещей, которые Вы имеете в своем списке пожеланий. DDD помещает более хорошую переднюю сторону на них. Например, переключение потока сделано более простым. Установка точек останова так проста, как Вы ожидали бы.
Вы также получаете cli окно в случае, если существует что-то неясное, которое Вы хотите сделать.
одной функцией DDD, который выделяется выше любого другого отладчика, который я использовал, являются данные "построение графика". Это позволяет Вам отображать и располагать структуры, объекты и память как перемещаемые поля. Двойной щелчок по указателю откроет разыменованные данные с визуальными ссылками назад на родителя.
Взгляните на эту статью CodeProject: http://www.codeproject.com/KB/security/CryptoInteropSign.aspx
Она содержит код для преобразования подписи DSA в формат P1363 ожидается в C #.
Некоторым примером кода от того, как проверить подпись DSA в BouncycaCtle C #:
ISigner sig = SignerUtilities.GetSigner("SHA1withDSA");
sig.Init(false, implCert.GetPublicKey());
sig.BlockUpdate(msgText, 0, msgText.Length);
bool valid = sig.VerifySignature(msgSigRaw);
Обратите внимание, что этот сигнал будет иметь дело с ASN.1 и расчетом дайджеста сообщения (я предполагал Sha-1 был использован здесь) для вас.
Если вы все еще действительно хотите узнать, как происходят преобразования значений {R, S} / из ASN.1, а затем посмотрите в источнике для DSadigestSigner. Внутренне он делает подходящую кодировку / декодирование / декодирование ASN.1, а затем использует класс DSASigner для операции низкоуровневой системы SIG.