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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions