Ответы пользователя по тегу Электронная цифровая подпись
  • Программная работа с ЭЦП

    Juralis
    @Juralis
    К сожалению, C# не знаю, могу поделиться своей функцией на IronPython. Порядок действий, классы и методы будут одинаковые.

    from System.Security.Cryptography import Pkcs
    from System.Security.Cryptography.X509Certificates import X509Store, OpenFlags, X509Certificate2Collection,\
        X509Certificate2, X509Certificate2UI, StoreName
    
    def sign(content, tp):
        store = X509Store(StoreName.My)
        store.Open(OpenFlags.ReadOnly)
        storecollection = X509Certificate2Collection(store.Certificates)
        myCert = None
        for cert in storecollection:
            if cert.Thumbprint.ToLower == tp.ToLower:
                myCert = cert
        if not myCert:
            return None
        else:
            contentInfo = Pkcs.ContentInfo(content)
            signedCms = Pkcs.SignedCms(contentInfo, True)
            cmsSigner = Pkcs.CmsSigner(myCert)
            signedCms.ComputeSignature(cmsSigner)
            sign = signedCms.Encode()
            return sign
    

    Соответственно, тут на входе байты файла и строка с отпечатком (Tumbprint, его можно посмотреть в свойствах сертификата, но если захотите скопировать прямо от туда, то нужно убрать пробелы)
    Вместо передачи отпечатка можно прямо просить выбрать сертификат. У класса X509Certificate2UI есть метод SelectFromCollection, который показывает стандартное окошко выбора сертификата и возвращает коллекцию с выбранными сертификатами.
    Касательно того, что это криптопровайдер от КриптоПро — в общем-то, в данном случае не имеет значения.

    Ну, соответственно, остаётся прочитать файл и сохранить байты подписи в имя_файла.sig
    Ответ написан
  • Кто-либо сталкивался с принятием в суде договора, подписанного ЭЦП?

    Juralis
    @Juralis
    Если мне не изменяет память, то ЭЦП является аналогом подписи и не равносильна по-умолчанию. Для того, чтобы документ подписанный ЭЦП имел юридическую силу, должен быть двусторонний договор между организациями, заключенный «классическим» образом, в котором прямо прописывается, что обе организации доверяют документам подписанный ЭЦП, либо обе организации могут присоединиться к публичному договору. В целом, данный вопрос регулируется Федеральным законом РФ от 10.01.2002 №1-ФЗ «Об электронной цифровой подписи», 160 статьей ГК РФ и парой других.
    На сколько мне известно, были успешные практики в делах связанных с представлением налоговой отчетности в электронном виде, но подробностей не знаю. В связи с тем, что многие спец.операторы начинают внедрять электронный документооборот между предприятиями, в том числе счета-фактуры, думаю суды уже морально готовы к таким делам.
    Ответ написан