Рутокен Плагин - генерация запроса

Здравствуйте! Подскажите пожалуйста как задать criticality: true для keyUsage?

var keyUsageVal = [
                    "digitalSignature",
                    "nonRepudiation",
                    "keyEncipherment",
                    "dataEncipherment"
                ];
                var extKeyUsageVal = [
                    "1.2.643.2.2.34.25",
                    "1.2.643.2.2.34.26",
                    "1.2.643.2.2.34.6",
                    "clientAuth",
                    "emailProtection"
                ];
                var certificatePolicies = [
                    "1.2.643.100.113.1", // КС1
                    "1.2.643.100.113.2" // КС2
                ];
                var extensions = {
                    "keyUsage":            keyUsageVal,
                    "extKeyUsage":         extKeyUsageVal,
                    "certificatePolicies": certificatePolicies
                };
                var options = {
                    "subjectSignTool":     'СКЗИ «Рутокен ЭЦП 2.0»',
                    "hashAlgorithm":       plugin.HASH_TYPE_GOST3411_12_256,
                    "customExtensions":    [
                        {
                            oid: "1.3.6.1.4.1.311.21.7",
                            value: "MA0GCCqFAwICLgAIAgEB",
                            criticality: false
                        }
                    ]
                };
                // console.log(devices[0], keyId, subject, extensions, options);
                plugin.createPkcs10(devices[0], keyId, subject, extensions, options)

Заранее спасибо!

Re: Рутокен Плагин - генерация запроса

mikrob24RUS, добрый день!

Через API Плагина просто это сделать не получится, только если KeyUsage добавлять как CustomExtention.
Но, прежде чем советовать этот способ, уточните, пожалуйста, зачем это вам нужно.

Critical — значит, что ПО, которое впоследствии будет работать с сертификатом выданном по запросу, если встретит поля которые не знает - должно прерывать свою работу.

Each extension in a
   certificate is designated as either critical or non-critical.  A
   certificate-using system MUST reject the certificate if it encounters
   a critical extension it does not recognize or a critical extension
   that contains information that it cannot process.  A non-critical
   extension MAY be ignored if it is not recognized, but MUST be
   processed if it is recognized.

https://datatracker.ietf.org/doc/html/r … ection-4.2


Современная практика предполагает знание системами поле KeyUsage.
Кроме того, УЦ, когда будет выдавать сертификат, сам решит делать ли его critical (даже если в запросе он non-critical)

Conforming CAs MUST include this extension in certificates that
   contain public keys that are used to validate digital signatures on
   other public key certificates or CRLs.  When present, conforming CAs
   SHOULD mark this extension as critical.

https://datatracker.ietf.org/doc/html/r … on-4.2.1.3

Re: Рутокен Плагин - генерация запроса

Спасибо! Сверял запросы сгенерированные Плагином и через панель управления Рутокен. В этой части обнаружил расхождения, почему и решил обратиться.
Спасибо за исчерпывающую информацию!
P.S. Возможно в будущем это может стать актуальным.