Rutoken NFC Android - создание самоподписанного сертификата на токене

Добрый день. По вашему примеру хотелось бы создать самоподписанный сертификат на токене
https://github.com/AktivCo/rutoken-tech … LocalCA.kt

Для получения PrivateKey вы заранее занете caPrivateKey и privateKeyAlgorithm. Не подскажете, можно ли получить эти данные из Pkcs11KeyPair? Или эту информацию можно получить другим способом?

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

добрый день.
privateKeyAlgorithm вы сами задаете при создании ключевой пары.
чтобы создать самоподписанный сертификат, то вместо caPrivateKey вы можете использовать PrivateKey от созданной вами ключевой пары.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

Ключ пара создана по вашему же примеру

https://github.com/AktivCo/rutoken-tech … tor.kt#L73

и возвращает: Pkcs11KeyPair<Pkcs11GostPublicKeyObject, Pkcs11GostPrivateKeyObject>

Не подскажете как получить PrivateKey?

И privateKeyAlgorithm в создании вы используете вид: GostKeyPairParams.GOST_2012_256
а при создании Тестового сертифката privateKeyAlgorithm = "ECGOST3410-2012"
Не поможете немного разобраться с этим?

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

monkeykima1993 пишет:

Не подскажете как получить PrivateKey?

Например, вот тут получение ключа описано https://github.com/AktivCo/rutoken-tech … gnature.kt

Какую вы задачу решаете? Для чего вы планируете использовать именно самоподписанный сертификат?

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

В ссылке которую вы предоставили privateKey: Pkcs11GostPrivateKeyObject, но ведь для подписи сертификата, в строке
https://github.com/AktivCo/rutoken-tech … CA.kt#L105

вы получаете класс java.security.PrivateKey. Необходимый для метода JcaContentSignerBuilder
https://github.com/AktivCo/rutoken-tech … CA.kt#L106

Самоподписанный сертификат хочу использовать для подписи и шифрования

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

monkeykima1993 пишет:

В ссылке которую вы предоставили privateKey: Pkcs11GostPrivateKeyObject, но ведь для подписи сертификата, в строке
https://github.com/AktivCo/rutoken-tech … CA.kt#L105

вы получаете класс java.security.PrivateKey. Необходимый для метода JcaContentSignerBuilder
https://github.com/AktivCo/rutoken-tech … CA.kt#L106

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

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

Спасибо большое за пояснение. Но этот алгоритм мне известен. В данный момент меня интересует какими методами вашего API можно это получить PrivateKey.
Хорошо постараюсь зайти с другой стороны. После авторизации на токене как можно получить PrivateKey класса java.security.PrivateKey. Во всех примерах от вас мы получаем Pkcs11GostPrivateKeyObject, для операции подписи и шифрования в ваших примерах используется handle ключа. Но для подписи сертификата вы же сами используете JcaContentSignerBuilder. Ваш пример просто имеет статичные данные. Подскажите как получить эти данные в рабочем коде?

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

monkeykima1993 пишет:

Подскажите как получить эти данные в рабочем коде?

готового примера у нас нет.
На основе примеров подписи произвольных данных вы можете сделать свою функцию для создания самоподписанного сертификата.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

Уважаемая команда поддержки,

Я обращаюсь к вам с просьбой предоставить более четкие и конкретные ответы касательно получения объекта java.security.PrivateKey после авторизации через ваш API. На данный момент, все мои предыдущие обращения получала лишь расплывчатые и общие ответы, которые, к сожалению, не помогают в решении моей проблемы.

Как мне известно, чтобы получить ContentSigner из CmsSigner, необходимо знать PrivateKey. Однако я не могу получить ясного понимания, существует ли возможность извлечения PrivateKey в рамках вашего API после прохождения процесса авторизации на токене.

Пожалуйста, объясните, возможно ли это, и если да, то каким образом. Я надеюсь на ваше понимание и более детальную и конкретную поддержку в данном вопросе.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

monkeykima1993, получить именно значение закрытого ключа в "текстовом" формате из токена никак нельзя.
Можно только обращаться к закрытому ключу по его handle. Именно это делается в наших примерах на подпись и шифрование.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

Я не прошу в текстовом формате. А хотелось бы получить класс java.security.PrivateKey для работы с методом JcaContentSignerBuilder. Или вы сможете мне объяснить как можно в JcaX509v3CertificateBuilder подписать сертификат по handle ключа?

Я хочу разобраться в ваших же примерах. Как их встраивать в свое приложение.

Примеры подписи и шифрования я видела.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

Мы постараемся подготовить нужный пример встраивания.

Re: Rutoken NFC Android - создание самоподписанного сертификата на токене

monkeykima1993, добрый день.
Коллеги подготовили необходимый пример https://github.com/AktivCo/rutoken-tech … gned-certs