От deroctetString к ключам
-
01-10-2019 - |
Вопрос
В 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 имеет конструктор для него.
Не связан с StackOverflow