Skip to content

Создание и проверка подписи CAdES BES, CAdES X Long Type 1 на линуксе используя .net core  #48

@murtazo96

Description

@murtazo96

Здравствуйте!
Возможно ли на линуксе создать подпись типа CAdES BES и дополнить до типа CAdES X Long Type 1 на .net core?
Ниже приведен код на винде, где используются com-интерфейсы cadescom и capicom для создания подписи CAdES BES и
CAdES X Long Type 1. На python(pycades) увидел что есть аналог реализации подписи CAdES BES. Как ниже приведенный код переписать под линукс заменив com-интерфейсы, или заставить работать com-интерфейсы на линуксе(думаю это невозможно)? Спасибо:)

             //Создание УКЭП
    public string SignWithAdvancedEDS(byte[] fileBytes, X509Certificate2 certificate)
    {
        string signature = "";

        try
        {
            string tspServerAddress = @"http://qs.cryptopro.ru/tsp/tsp.srf";

            CPSigner cps = new CPSigner();
            cps.Certificate = GetCAPICOMCertificate(certificate.Thumbprint);
            cps.Options = CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN;
            cps.TSAAddress = tspServerAddress;

            CadesSignedData csd = new CadesSignedData();
            csd.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
            csd.Content = Convert.ToBase64String(fileBytes);

            //Создание и проверка подписи CAdES BES
            signature = csd.SignCades(cps, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, true,
                CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
            //csd.VerifyCades(signature, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, true);

            //Дополнение и проверка подписи CAdES BES до подписи CAdES X Long Type 1 
            //(вторая подпись остается без изменения, так как она уже CAdES X Long Type 1)
            //signature = csd.EnhanceCades(CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1, tspServerAddress,
            //    CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
            //csd.VerifyCades(signature, CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1, true);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return signature;
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions