Вопрос

В Bouncycastle. Я могу создать deroctetString, начиная с ключа.

Как я могу получить ключ, начиная с DEROCTETSTSTRING, а затем?

Пример:

DEROctetString derString = new DEROctetString(new KeyUsage(KeyUsage.digitalSignature));
KeyUsage ku = ...(some code to get back KeyUsage starting from derString)...

Мне это нужно, потому что я могу создать запросы с сертификатами с запросом расширения ключей, но затем, учитывая только запрос сертификата, я не могу вернуть расширение ключа.

Это было полезно?

Решение

Я нашел решение с использованием ASN1INPUTSTREAM:

ASN1InputStream ais = new ASN1InputStream(derOctetString.getOctetStream());
KeyUsage ku = new KeyUsage((DERBitString) ais.readObject());

Это работает!

Другие советы

Кейузги определяется как это в X.509,

 id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }

 KeyUsage ::= BIT STRING {
      digitalSignature        (0),
      nonRepudiation          (1),
      keyEncipherment         (2),
      dataEncipherment        (3),
      keyAgreement            (4),
      keyCertSign             (5),
      cRLSign                 (6),
      encipherOnly            (7),
      decipherOnly            (8) }

Так что неправильно создавать для него octet String. Если вы создаете DERBIBTSTSTRING, KeyUsage имеет конструктор для него.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top