Skip to content

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

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;
    }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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